diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index b2633a5..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,155 +0,0 @@ -# This file was automatically generated by sbt-github-actions using the -# githubWorkflowGenerate task. You should add and commit this file to -# your git repository. It goes without saying that you shouldn't edit -# this file by hand! Instead, if you wish to make changes, you should -# change your sbt build configuration to revise the workflow description -# to meet your needs, then regenerate this file. - -name: Continuous Integration - -on: - pull_request: - branches: ['**'] - push: - branches: ['**'] - tags: [v*] - -env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - -jobs: - build: - name: Build and Test - strategy: - matrix: - os: [ubuntu-latest] - scala: [2.11.12, 2.12.15, 2.13.8] - java: [adopt-hotspot@8, adopt-hotspot@11] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout current branch (full) - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Setup Java (adopt-hotspot@8) - if: matrix.java == 'adopt-hotspot@8' - uses: actions/setup-java@v2 - with: - distribution: adopt-hotspot - java-version: 8 - - - name: Setup Java (adopt-hotspot@11) - if: matrix.java == 'adopt-hotspot@11' - uses: actions/setup-java@v2 - with: - distribution: adopt-hotspot - java-version: 11 - - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.ivy2/cache - ~/.coursier/cache/v1 - ~/.cache/coursier/v1 - ~/AppData/Local/Coursier/Cache/v1 - ~/Library/Caches/Coursier/v1 - key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} - - - run: sbt ++${{ matrix.scala }} scalafmtCheckAll - - - name: Check that workflows are up to date - run: sbt ++${{ matrix.scala }} githubWorkflowCheck - - - name: Build project - run: sbt ++${{ matrix.scala }} test - - - name: Compress target directories - run: tar cf targets.tar target project/target - - - name: Upload target directories - uses: actions/upload-artifact@v2 - with: - name: target-${{ matrix.os }}-${{ matrix.scala }}-${{ matrix.java }} - path: targets.tar - - publish: - name: Publish Artifacts - needs: [build] - if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v')) - strategy: - matrix: - os: [ubuntu-latest] - scala: [2.12.15] - java: [adopt-hotspot@8] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout current branch (full) - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Setup Java (adopt-hotspot@8) - if: matrix.java == 'adopt-hotspot@8' - uses: actions/setup-java@v2 - with: - distribution: adopt-hotspot - java-version: 8 - - - name: Setup Java (adopt-hotspot@11) - if: matrix.java == 'adopt-hotspot@11' - uses: actions/setup-java@v2 - with: - distribution: adopt-hotspot - java-version: 11 - - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.ivy2/cache - ~/.coursier/cache/v1 - ~/.cache/coursier/v1 - ~/AppData/Local/Coursier/Cache/v1 - ~/Library/Caches/Coursier/v1 - key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} - - - name: Download target directories (2.11.12) - uses: actions/download-artifact@v2 - with: - name: target-${{ matrix.os }}-2.11.12-${{ matrix.java }} - - - name: Inflate target directories (2.11.12) - run: | - tar xf targets.tar - rm targets.tar - - - name: Download target directories (2.12.15) - uses: actions/download-artifact@v2 - with: - name: target-${{ matrix.os }}-2.12.15-${{ matrix.java }} - - - name: Inflate target directories (2.12.15) - run: | - tar xf targets.tar - rm targets.tar - - - name: Download target directories (2.13.8) - uses: actions/download-artifact@v2 - with: - name: target-${{ matrix.os }}-2.13.8-${{ matrix.java }} - - - name: Inflate target directories (2.13.8) - run: | - tar xf targets.tar - rm targets.tar - - - env: - PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} - PGP_SECRET: ${{ secrets.PGP_SECRET }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - run: sbt ++${{ matrix.scala }} ci-release diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml deleted file mode 100644 index 547aaa4..0000000 --- a/.github/workflows/clean.yml +++ /dev/null @@ -1,59 +0,0 @@ -# This file was automatically generated by sbt-github-actions using the -# githubWorkflowGenerate task. You should add and commit this file to -# your git repository. It goes without saying that you shouldn't edit -# this file by hand! Instead, if you wish to make changes, you should -# change your sbt build configuration to revise the workflow description -# to meet your needs, then regenerate this file. - -name: Clean - -on: push - -jobs: - delete-artifacts: - name: Delete Artifacts - runs-on: ubuntu-latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: Delete artifacts - run: | - # Customize those three lines with your repository and credentials: - REPO=${GITHUB_API_URL}/repos/${{ github.repository }} - - # A shortcut to call GitHub API. - ghapi() { curl --silent --location --user _:$GITHUB_TOKEN "$@"; } - - # A temporary file which receives HTTP response headers. - TMPFILE=/tmp/tmp.$$ - - # An associative array, key: artifact name, value: number of artifacts of that name. - declare -A ARTCOUNT - - # Process all artifacts on this repository, loop on returned "pages". - URL=$REPO/actions/artifacts - while [[ -n "$URL" ]]; do - - # Get current page, get response headers in a temporary file. - JSON=$(ghapi --dump-header $TMPFILE "$URL") - - # Get URL of next page. Will be empty if we are at the last page. - URL=$(grep '^Link:' "$TMPFILE" | tr ',' '\n' | grep 'rel="next"' | head -1 | sed -e 's/.*.*//') - rm -f $TMPFILE - - # Number of artifacts on this page: - COUNT=$(( $(jq <<<$JSON -r '.artifacts | length') )) - - # Loop on all artifacts on this page. - for ((i=0; $i < $COUNT; i++)); do - - # Get name of artifact and count instances of this name. - name=$(jq <<<$JSON -r ".artifacts[$i].name?") - ARTCOUNT[$name]=$(( $(( ${ARTCOUNT[$name]} )) + 1)) - - id=$(jq <<<$JSON -r ".artifacts[$i].id?") - size=$(( $(jq <<<$JSON -r ".artifacts[$i].size_in_bytes?") )) - printf "Deleting '%s' #%d, %'d bytes\n" $name ${ARTCOUNT[$name]} $size - ghapi -X DELETE $REPO/actions/artifacts/$id - done - done diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8577b3c..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# folders -.idea -target -lib -classes -.bsp - -# files -*.iml diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/.scalafmt.conf b/.scalafmt.conf deleted file mode 100644 index c87acf6..0000000 --- a/.scalafmt.conf +++ /dev/null @@ -1,15 +0,0 @@ -version = 3.4.3 -runner.dialect = scala213 -project.git = true - -maxColumn = 120 -docstrings.oneline = fold -align.preset = more - -rewrite.rules = [ - PreferCurlyFors - RedundantBraces # maybe non-idempotent - RedundantParens - SortImports - SortModifiers -] diff --git a/LICENSE b/LICENSE deleted file mode 100644 index ea2712c..0000000 --- a/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md deleted file mode 100644 index 85f0eef..0000000 --- a/README.md +++ /dev/null @@ -1,35 +0,0 @@ -Scaldi -======== - -![Continuous Integration](https://github.com/scaldi/scaldi/workflows/Continuous%20Integration/badge.svg) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.scaldi/scaldi_2.13/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.scaldi/scaldi_2.13) - -Scaldi provides a simple and elegant way to do dependency injection in Scala. -By using the expressive power of the Scala language, it defines an intuitive and -idiomatic DSL for binding and injecting dependencies. It is a highly extensible -library; you can easily customise almost any aspect of it. Some of its more unique -features are advanced module composition and conditional bindings, which can -help you build all kinds of applications - from small command-line tools to -large web applications. Scaldi also integrates nicely with Akka and Play. - -The Scaldi documentation DNS record ownership is in flux. -Until that is resolved, you may need to rely on the original project's documentation. -You can find an archive of the original project's homepage -[here](https://web.archive.org/web/20190616212058/http://scaldi.org/), or jump directly -to the documentation -[here](https://web.archive.org/web/20190618005634/http://scaldi.org/learn). Due to it -being an archived website, some of the links on it may not work properly. - -## Adding Scaldi to Your Build - -SBT Configuration: - -```sbtshell -libraryDependencies += "org.scaldi" %% "scaldi" % x.y.z -``` - -Scaldi supports Scala 2.11, 2.12 and 2.13. - -## License - -**Scaldi** is licensed under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). diff --git a/build.sbt b/build.sbt deleted file mode 100644 index 2c6eba5..0000000 --- a/build.sbt +++ /dev/null @@ -1,81 +0,0 @@ -name := "scaldi" -organization := "org.scaldi" - -description := "Scaldi - Scala Dependency Injection Library" -homepage := Some(url("https://github.com/scaldi/scaldi")) -licenses := Seq("Apache License, ASL Version 2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")) - -lazy val scala213 = "2.13.8" - -scalaVersion := scala213 -crossScalaVersions := Seq("2.11.12", "2.12.15", scala213) -mimaPreviousArtifacts := Set("0.6.0").map(organization.value %% name.value % _) -scalacOptions ++= Seq("-deprecation", "-feature") - -libraryDependencies ++= Seq( - "org.scala-lang" % "scala-reflect" % scalaVersion.value, - "org.scala-lang.modules" %% "scala-collection-compat" % "2.7.0", - "com.typesafe" % "config" % "1.4.2" % Optional, - "org.scalatest" %% "scalatest" % "3.2.12" % Test -) - -fork := true -git.remoteRepo := "git@github.com:scaldi/scaldi.git" - -// Publishing - -pomIncludeRepository := (_ => false) -Test / publishArtifact := false -ThisBuild / githubWorkflowTargetTags ++= Seq("v*") -ThisBuild / githubWorkflowScalaVersions := crossScalaVersions.value -ThisBuild / githubWorkflowJavaVersions := Seq("8", "11").map(JavaSpec(JavaSpec.Distribution.Adopt, _)) -ThisBuild / githubWorkflowPublishTargetBranches := Seq(RefPredicate.StartsWith(Ref.Tag("v"))) -ThisBuild / githubWorkflowBuildPreamble := Seq(WorkflowStep.Sbt(List("scalafmtCheckAll"))) -ThisBuild / githubWorkflowPublish := Seq( - WorkflowStep.Sbt( - List("ci-release"), - env = Map( - "PGP_PASSPHRASE" -> "${{ secrets.PGP_PASSPHRASE }}", - "PGP_SECRET" -> "${{ secrets.PGP_SECRET }}", - "SONATYPE_PASSWORD" -> "${{ secrets.SONATYPE_PASSWORD }}", - "SONATYPE_USERNAME" -> "${{ secrets.SONATYPE_USERNAME }}" - ) - ) -) - -// Site and docs - -enablePlugins(SiteScaladocPlugin) -enablePlugins(GhpagesPlugin) - -// nice *magenta* prompt! - -ThisBuild / shellPrompt := { state => - scala.Console.MAGENTA + Project.extract(state).currentRef.project + "> " + scala.Console.RESET -} - -// Additional meta-info - -startYear := Some(2011) -organizationHomepage := Some(url("https://github.com/scaldi")) -scmInfo := Some( - ScmInfo( - browseUrl = url("https://github.com/scaldi/scaldi"), - connection = "scm:git:git@github.com:scaldi/scaldi.git" - ) -) -developers := List( - Developer("AprilAtProtenus", "April Hyacinth", "april@protenus.com", url("https://github.com/AprilAtProtenus")), - Developer("dave-handy", "Dave Handy", "wdhandy@gmail.com", url("https://github.com/dave-handy")) -) - -// Scalafmt aliases -scalafmtCheckAll := { - (Compile / scalafmtSbtCheck).value - scalafmtCheckAll.value -} - -scalafmtAll := { - (Compile / scalafmtSbt).value - scalafmtAll.value -} diff --git a/latest/api/deprecated-list.html b/latest/api/deprecated-list.html new file mode 100644 index 0000000..124110c --- /dev/null +++ b/latest/api/deprecated-list.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
+
BindingProvider
+
scaldi
+
+
in
+
BindHelper
+
+
inNonLazy
+
BindHelper
+
+
inProvider
+
BindHelper
+
+
ReflectionBinder
+
scaldi
+
+
StaticModule
+
scaldi
+
+ diff --git a/latest/api/index.html b/latest/api/index.html new file mode 100644 index 0000000..761c405 --- /dev/null +++ b/latest/api/index.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +
+ class icon + trait icon + trait icon + trait icon +
+
+
+ +
+ +
    +
    1. + scaldi +
      1. (case class)AndCondition
      2. (object)
        Args
      3. (class)BindHelper
      4. (object)(trait)Binding
      5. (class)BindingException
      6. (object)(case class)BindingLifecycle
      7. (trait)BindingProvider
      8. (object)(trait)BindingWithLifecycle
      9. (class)BoundHelper
      10. (class)ByWord
      11. (trait)CanBeConditional
      12. (trait)CanBeIdentified
      13. (object)(trait)CanBeIdentifier
      14. (trait)CanCompose
      15. (trait)CanHaveLifecycle
      16. (object)(trait)Condition
      17. (object)(class)DynamicModule
      18. (trait)Freezable
      19. (trait)Identifiable
      20. (class)IdentifiedWord
      21. (object)(trait)Identifier
      22. (trait)ImmutableInjector
      23. (class)ImmutableInjectorAggregation
      24. (object)(class)ImmutableWrapper
      25. (trait)Initializeable
      26. (object)(trait)Injectable
      27. (case class)InjectConstraints
      28. (class)InjectException
      29. (object)(trait)Injector
      30. (trait)InjectorWithLifecycle
      31. (case class)LazyBinding
      32. (trait)LifecycleManager
      33. (trait)LowPriorityImmutableInjectorComposition
      34. (trait)LowPriorityMutableInjectorComposition
      35. (trait)Module
      36. (trait)MutableInjector
      37. (class)MutableInjectorAggregation
      38. (trait)MutableInjectorUser
      39. (object)
        NilInjector
      40. (case class)NonLazyBinding
      41. (case class)NotCondition
      42. (trait)OpenInjectable
      43. (case class)OrCondition
      44. (object)(class)PropertiesInjector
      45. (case class)ProviderBinding
      46. (case class)RawBinding
      47. (trait)RawInjector
      48. (trait)ReflectionBinder
      49. (case class)RequiredIdentifier
      50. (trait)ShutdownHookLifecycleManager
      51. (case class)SimpleBinding
      52. (class)SimpleContainerInjector
      53. (trait)StaticModule
      54. (case class)StringIdentifier
      55. (case class)SysPropCondition
      56. (object)
        SystemPropertiesInjector
      57. (object)(class)TypesafeConfigInjector
      58. (object)(case class)TypeTagIdentifier
      59. (trait)Wire
      60. (object)(class)WireBuilder
      61. (trait)WordBinder
      62. (case class)WordBindingProvider
      +
      1. + scaldi.util +
        1. (object)
          ReflectionHelper
        2. (object)
          Util
        +
        1. + scaldi.util.constraints +
          1. (object)(trait)And
          2. (trait)Existence
          3. (trait)Exists
          4. (object)(trait)IsTypeClassExists
          5. (trait)LowPriorityIsTypeClassExists
          6. (object)(trait)Not
          7. (trait)NotExists
          8. (object)(trait)NotNothing
          9. (object)(trait)Or
          +
          +
        +
      +
    +
    +
    +
    + +
    + + diff --git a/latest/api/index.js b/latest/api/index.js new file mode 100644 index 0000000..5a7adf3 --- /dev/null +++ b/latest/api/index.js @@ -0,0 +1 @@ +Index.PACKAGES = {"scaldi" : [{"case class" : "scaldi\/AndCondition.html", "name" : "scaldi.AndCondition"}, {"object" : "scaldi\/Args$.html", "name" : "scaldi.Args"}, {"class" : "scaldi\/BindHelper.html", "name" : "scaldi.BindHelper"}, {"object" : "scaldi\/Binding$.html", "trait" : "scaldi\/Binding.html", "name" : "scaldi.Binding"}, {"class" : "scaldi\/BindingException.html", "name" : "scaldi.BindingException"}, {"object" : "scaldi\/BindingLifecycle$.html", "case class" : "scaldi\/BindingLifecycle.html", "name" : "scaldi.BindingLifecycle"}, {"trait" : "scaldi\/BindingProvider.html", "name" : "scaldi.BindingProvider"}, {"object" : "scaldi\/BindingWithLifecycle$.html", "trait" : "scaldi\/BindingWithLifecycle.html", "name" : "scaldi.BindingWithLifecycle"}, {"class" : "scaldi\/BoundHelper.html", "name" : "scaldi.BoundHelper"}, {"class" : "scaldi\/ByWord.html", "name" : "scaldi.ByWord"}, {"trait" : "scaldi\/CanBeConditional.html", "name" : "scaldi.CanBeConditional"}, {"trait" : "scaldi\/CanBeIdentified.html", "name" : "scaldi.CanBeIdentified"}, {"object" : "scaldi\/CanBeIdentifier$.html", "trait" : "scaldi\/CanBeIdentifier.html", "name" : "scaldi.CanBeIdentifier"}, {"trait" : "scaldi\/CanCompose.html", "name" : "scaldi.CanCompose"}, {"trait" : "scaldi\/CanHaveLifecycle.html", "name" : "scaldi.CanHaveLifecycle"}, {"object" : "scaldi\/Condition$.html", "trait" : "scaldi\/Condition.html", "name" : "scaldi.Condition"}, {"object" : "scaldi\/DynamicModule$.html", "class" : "scaldi\/DynamicModule.html", "name" : "scaldi.DynamicModule"}, {"trait" : "scaldi\/Freezable.html", "name" : "scaldi.Freezable"}, {"trait" : "scaldi\/Identifiable.html", "name" : "scaldi.Identifiable"}, {"class" : "scaldi\/IdentifiedWord.html", "name" : "scaldi.IdentifiedWord"}, {"object" : "scaldi\/Identifier$.html", "trait" : "scaldi\/Identifier.html", "name" : "scaldi.Identifier"}, {"trait" : "scaldi\/ImmutableInjector.html", "name" : "scaldi.ImmutableInjector"}, {"class" : "scaldi\/ImmutableInjectorAggregation.html", "name" : "scaldi.ImmutableInjectorAggregation"}, {"object" : "scaldi\/ImmutableWrapper$.html", "class" : "scaldi\/ImmutableWrapper.html", "name" : "scaldi.ImmutableWrapper"}, {"trait" : "scaldi\/Initializeable.html", "name" : "scaldi.Initializeable"}, {"object" : "scaldi\/Injectable$.html", "trait" : "scaldi\/Injectable.html", "name" : "scaldi.Injectable"}, {"case class" : "scaldi\/InjectConstraints.html", "name" : "scaldi.InjectConstraints"}, {"class" : "scaldi\/InjectException.html", "name" : "scaldi.InjectException"}, {"object" : "scaldi\/Injector$.html", "trait" : "scaldi\/Injector.html", "name" : "scaldi.Injector"}, {"trait" : "scaldi\/InjectorWithLifecycle.html", "name" : "scaldi.InjectorWithLifecycle"}, {"case class" : "scaldi\/LazyBinding.html", "name" : "scaldi.LazyBinding"}, {"trait" : "scaldi\/LifecycleManager.html", "name" : "scaldi.LifecycleManager"}, {"trait" : "scaldi\/LowPriorityImmutableInjectorComposition.html", "name" : "scaldi.LowPriorityImmutableInjectorComposition"}, {"trait" : "scaldi\/LowPriorityMutableInjectorComposition.html", "name" : "scaldi.LowPriorityMutableInjectorComposition"}, {"trait" : "scaldi\/Module.html", "name" : "scaldi.Module"}, {"trait" : "scaldi\/MutableInjector.html", "name" : "scaldi.MutableInjector"}, {"class" : "scaldi\/MutableInjectorAggregation.html", "name" : "scaldi.MutableInjectorAggregation"}, {"trait" : "scaldi\/MutableInjectorUser.html", "name" : "scaldi.MutableInjectorUser"}, {"object" : "scaldi\/NilInjector$.html", "name" : "scaldi.NilInjector"}, {"case class" : "scaldi\/NonLazyBinding.html", "name" : "scaldi.NonLazyBinding"}, {"case class" : "scaldi\/NotCondition.html", "name" : "scaldi.NotCondition"}, {"trait" : "scaldi\/OpenInjectable.html", "name" : "scaldi.OpenInjectable"}, {"case class" : "scaldi\/OrCondition.html", "name" : "scaldi.OrCondition"}, {"object" : "scaldi\/PropertiesInjector$.html", "class" : "scaldi\/PropertiesInjector.html", "name" : "scaldi.PropertiesInjector"}, {"case class" : "scaldi\/ProviderBinding.html", "name" : "scaldi.ProviderBinding"}, {"case class" : "scaldi\/RawBinding.html", "name" : "scaldi.RawBinding"}, {"trait" : "scaldi\/RawInjector.html", "name" : "scaldi.RawInjector"}, {"trait" : "scaldi\/ReflectionBinder.html", "name" : "scaldi.ReflectionBinder"}, {"case class" : "scaldi\/RequiredIdentifier.html", "name" : "scaldi.RequiredIdentifier"}, {"trait" : "scaldi\/ShutdownHookLifecycleManager.html", "name" : "scaldi.ShutdownHookLifecycleManager"}, {"case class" : "scaldi\/SimpleBinding.html", "name" : "scaldi.SimpleBinding"}, {"class" : "scaldi\/SimpleContainerInjector.html", "name" : "scaldi.SimpleContainerInjector"}, {"trait" : "scaldi\/StaticModule.html", "name" : "scaldi.StaticModule"}, {"case class" : "scaldi\/StringIdentifier.html", "name" : "scaldi.StringIdentifier"}, {"case class" : "scaldi\/SysPropCondition.html", "name" : "scaldi.SysPropCondition"}, {"object" : "scaldi\/SystemPropertiesInjector$.html", "name" : "scaldi.SystemPropertiesInjector"}, {"object" : "scaldi\/TypesafeConfigInjector$.html", "class" : "scaldi\/TypesafeConfigInjector.html", "name" : "scaldi.TypesafeConfigInjector"}, {"object" : "scaldi\/TypeTagIdentifier$.html", "case class" : "scaldi\/TypeTagIdentifier.html", "name" : "scaldi.TypeTagIdentifier"}, {"trait" : "scaldi\/Wire.html", "name" : "scaldi.Wire"}, {"object" : "scaldi\/WireBuilder$.html", "class" : "scaldi\/WireBuilder.html", "name" : "scaldi.WireBuilder"}, {"trait" : "scaldi\/WordBinder.html", "name" : "scaldi.WordBinder"}, {"case class" : "scaldi\/WordBindingProvider.html", "name" : "scaldi.WordBindingProvider"}], "scaldi.util" : [{"object" : "scaldi\/util\/ReflectionHelper$.html", "name" : "scaldi.util.ReflectionHelper"}, {"object" : "scaldi\/util\/Util$.html", "name" : "scaldi.util.Util"}], "scaldi.util.constraints" : [{"object" : "scaldi\/util\/constraints\/And$.html", "trait" : "scaldi\/util\/constraints\/And.html", "name" : "scaldi.util.constraints.And"}, {"trait" : "scaldi\/util\/constraints\/Existence.html", "name" : "scaldi.util.constraints.Existence"}, {"trait" : "scaldi\/util\/constraints\/Exists.html", "name" : "scaldi.util.constraints.Exists"}, {"object" : "scaldi\/util\/constraints\/IsTypeClassExists$.html", "trait" : "scaldi\/util\/constraints\/IsTypeClassExists.html", "name" : "scaldi.util.constraints.IsTypeClassExists"}, {"trait" : "scaldi\/util\/constraints\/LowPriorityIsTypeClassExists.html", "name" : "scaldi.util.constraints.LowPriorityIsTypeClassExists"}, {"object" : "scaldi\/util\/constraints\/Not$.html", "trait" : "scaldi\/util\/constraints\/Not.html", "name" : "scaldi.util.constraints.Not"}, {"trait" : "scaldi\/util\/constraints\/NotExists.html", "name" : "scaldi.util.constraints.NotExists"}, {"object" : "scaldi\/util\/constraints\/NotNothing$.html", "trait" : "scaldi\/util\/constraints\/NotNothing.html", "name" : "scaldi.util.constraints.NotNothing"}, {"object" : "scaldi\/util\/constraints\/Or$.html", "trait" : "scaldi\/util\/constraints\/Or.html", "name" : "scaldi.util.constraints.Or"}]}; \ No newline at end of file diff --git a/latest/api/index/index-_.html b/latest/api/index/index-_.html new file mode 100644 index 0000000..58ec650 --- /dev/null +++ b/latest/api/index/index-_.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + +
    +
    ++
    +
    Injector
    +
    +
    ::
    +
    Injector
    +
    +
    <|
    +
    WorkflowHelper
    +
    +
    |>
    +
    WorkflowHelper
    +
    + diff --git a/latest/api/index/index-a.html b/latest/api/index/index-a.html new file mode 100644 index 0000000..07206ed --- /dev/null +++ b/latest/api/index/index-a.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + +
    +
    And
    +
    constraints
    +
    +
    AndCondition
    +
    scaldi
    +
    +
    Args
    +
    scaldi
    +
    +
    aExistsEv
    +
    Or
    +
    +
    addDestroyable
    +
    LifecycleManager ShutdownHookLifecycleManager
    +
    +
    and
    +
    CanBeIdentified Condition InjectConstraints
    +
    +
    apply
    +
    Args Binding BindingWithLifecycle Condition DynamicModule ImmutableWrapper PropertiesInjector TypesafeConfigInjector
    +
    +
    as
    +
    CanBeIdentified
    +
    + diff --git a/latest/api/index/index-b.html b/latest/api/index/index-b.html new file mode 100644 index 0000000..cfe6de5 --- /dev/null +++ b/latest/api/index/index-b.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + +
    +
    BindHelper
    +
    scaldi
    +
    +
    Binding
    +
    scaldi
    +
    +
    BindingException
    +
    scaldi
    +
    +
    BindingLifecycle
    +
    scaldi
    +
    +
    BindingProvider
    +
    scaldi
    +
    +
    BindingWithLifecycle
    +
    scaldi
    +
    +
    BoundHelper
    +
    scaldi
    +
    +
    ByWord
    +
    scaldi
    +
    +
    bExistsEv
    +
    Or
    +
    +
    bind
    +
    WordBinder
    +
    +
    binding
    +
    WordBinder
    +
    +
    bindingFn
    +
    WordBindingProvider
    +
    +
    bothExistEv
    +
    And
    +
    +
    boundValue
    +
    SimpleBinding
    +
    +
    build
    +
    WireBuilder
    +
    +
    by
    +
    IdentifiedWord Injectable OpenInjectable
    +
    + diff --git a/latest/api/index/index-c.html b/latest/api/index/index-c.html new file mode 100644 index 0000000..c91a2d8 --- /dev/null +++ b/latest/api/index/index-c.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + +
    +
    Cache
    +
    Util
    +
    +
    CacheUtils
    +
    Util
    +
    +
    CanBeConditional
    +
    scaldi
    +
    +
    CanBeIdentified
    +
    scaldi
    +
    +
    CanBeIdentifier
    +
    scaldi
    +
    +
    CanCompose
    +
    scaldi
    +
    +
    CanHaveLifecycle
    +
    scaldi
    +
    +
    ClassCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    Condition
    +
    scaldi
    +
    +
    cacheable
    +
    SimpleBinding
    +
    +
    caching
    +
    CacheUtils
    +
    +
    canBeIdentifiedToConstraints
    +
    Injectable OpenInjectable
    +
    +
    classToType
    +
    ReflectionHelper
    +
    +
    compose
    +
    CanCompose nilWithNilComposition
    +
    +
    condition
    +
    CanBeConditional Identifiable LazyBinding NonLazyBinding NotCondition ProviderBinding RawBinding ReflectiveBinding SimpleBinding
    +
    +
    conditions
    +
    AndCondition OrCondition
    +
    +
    constraints
    +
    util
    +
    +
    constructorSymbol
    +
    ReflectionHelper
    +
    +
    createCache
    +
    Util
    +
    +
    createFn
    +
    BindHelper
    +
    + diff --git a/latest/api/index/index-d.html b/latest/api/index/index-d.html new file mode 100644 index 0000000..120a8bf --- /dev/null +++ b/latest/api/index/index-d.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + +
    +
    DynamicModule
    +
    scaldi
    +
    +
    default
    +
    ByWord InjectConstraints
    +
    +
    delegate
    +
    RequiredIdentifier
    +
    +
    destroy
    +
    BindingLifecycle LifecycleManager ShutdownHookLifecycleManager
    +
    +
    destroyObject
    +
    BindingLifecycle
    +
    +
    destroyWith
    +
    CanHaveLifecycle
    +
    +
    destroyableAdded
    +
    LazyBinding NonLazyBinding
    +
    +
    discoverBinding
    +
    RawInjector TypesafeConfigInjector
    +
    + diff --git a/latest/api/index/index-e.html b/latest/api/index/index-e.html new file mode 100644 index 0000000..0257826 --- /dev/null +++ b/latest/api/index/index-e.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + +
    +
    Existence
    +
    constraints
    +
    +
    Exists
    +
    constraints
    +
    +
    eager
    +
    SimpleBinding
    +
    +
    empty
    +
    BindingLifecycle
    +
    +
    error
    +
    WireBuilder
    +
    +
    evidence
    +
    LowPriorityIsTypeClassExists
    +
    +
    extractProperty
    +
    WireBuilder
    +
    +
    extractPropertyName
    +
    WireBuilder
    +
    + diff --git a/latest/api/index/index-f.html b/latest/api/index/index-f.html new file mode 100644 index 0000000..0d55e74 --- /dev/null +++ b/latest/api/index/index-f.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
    +
    Freezable
    +
    scaldi
    +
    +
    fieldAnnotations
    +
    ReflectionHelper
    +
    +
    fn
    +
    ReflectiveBinding
    +
    + diff --git a/latest/api/index/index-g.html b/latest/api/index/index-g.html new file mode 100644 index 0000000..b4e66c0 --- /dev/null +++ b/latest/api/index/index-g.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + +
    +
    get
    +
    Binding BindingWithLifecycle LazyBinding NonLazyBinding ProviderBinding RawBinding ReflectiveBinding SimpleBinding Or
    +
    +
    getBinding
    +
    BindingProvider BoundHelper ImmutableInjectorAggregation ImmutableWrapper Injector InjectorWithLifecycle NilInjector RawInjector StaticModule
    +
    +
    getBindingInternal
    +
    DynamicModule InjectorWithLifecycle Module MutableInjectorAggregation SimpleContainerInjector
    +
    +
    getBindings
    +
    ImmutableInjectorAggregation ImmutableWrapper Injector InjectorWithLifecycle NilInjector RawInjector StaticModule
    +
    +
    getBindingsInternal
    +
    DynamicModule InjectorWithLifecycle Module MutableInjectorAggregation SimpleContainerInjector
    +
    +
    getDefaultValueOfParam
    +
    ReflectionHelper
    +
    +
    getRawValue
    +
    PropertiesInjector RawInjector SystemPropertiesInjector TypesafeConfigInjector
    +
    + diff --git a/latest/api/index/index-h.html b/latest/api/index/index-h.html new file mode 100644 index 0000000..1b23790 --- /dev/null +++ b/latest/api/index/index-h.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
    +
    hasAnnotation
    +
    ReflectionHelper
    +
    + diff --git a/latest/api/index/index-i.html b/latest/api/index/index-i.html new file mode 100644 index 0000000..9f940c0 --- /dev/null +++ b/latest/api/index/index-i.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + +
    +
    Identifiable
    +
    scaldi
    +
    +
    IdentifiedWord
    +
    scaldi
    +
    +
    Identifier
    +
    scaldi
    +
    +
    IgnoringErrorHandler
    +
    LifecycleManager
    +
    +
    ImmutableInjector
    +
    scaldi
    +
    +
    ImmutableInjectorAggregation
    +
    scaldi
    +
    +
    ImmutableWrapper
    +
    scaldi
    +
    +
    Initializeable
    +
    scaldi
    +
    +
    InjectConstraints
    +
    scaldi
    +
    +
    InjectException
    +
    scaldi
    +
    +
    Injectable
    +
    scaldi
    +
    +
    Injector
    +
    scaldi
    +
    +
    InjectorWithLifecycle
    +
    scaldi
    +
    +
    IsTypeClassExists
    +
    constraints
    +
    +
    identified
    +
    Injectable OpenInjectable
    +
    +
    identifiedBy
    +
    CanBeIdentified
    +
    +
    identifierCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    identifiers
    +
    CanBeIdentified Identifiable InjectConstraints LazyBinding NonLazyBinding ProviderBinding RawBinding ReflectiveBinding SimpleBinding
    +
    +
    immutableComposition
    +
    LowPriorityImmutableInjectorComposition
    +
    +
    in
    +
    BindHelper
    +
    +
    inNonLazy
    +
    BindHelper
    +
    +
    inProvider
    +
    BindHelper
    +
    +
    init
    +
    DynamicModule Initializeable Module MutableInjectorAggregation SimpleContainerInjector
    +
    +
    initEagerWordBindings
    +
    WordBinder
    +
    +
    initNonLazy
    +
    Initializeable
    +
    +
    initWith
    +
    CanHaveLifecycle
    +
    +
    initialIdentifiers
    +
    InjectConstraints
    +
    +
    initialize
    +
    BindingLifecycle
    +
    +
    initializeObject
    +
    BindingLifecycle
    +
    +
    inject
    +
    Injectable OpenInjectable
    +
    +
    injectAll
    +
    Injectable OpenInjectable
    +
    +
    injectAllOfType
    +
    Injectable OpenInjectable
    +
    +
    injectProvider
    +
    Injectable OpenInjectable
    +
    +
    injectWithConstructorDefault
    +
    Injectable OpenInjectable
    +
    +
    injectWithDefault
    +
    Injectable OpenInjectable
    +
    +
    injected
    +
    Wire
    +
    +
    injector
    +
    MutableInjectorUser StaticModule WordBinder
    +
    +
    injectorFn
    +
    MutableInjectorUser
    +
    +
    injector_=
    +
    MutableInjectorAggregation MutableInjectorUser
    +
    +
    is
    +
    InjectConstraints
    +
    +
    isAssignableFrom
    +
    ReflectionHelper
    +
    +
    isCacheable
    +
    Identifiable LazyBinding NonLazyBinding RawBinding SimpleBinding
    +
    +
    isDefinedFor
    +
    Identifiable
    +
    +
    isEager
    +
    Identifiable NonLazyBinding SimpleBinding
    +
    +
    isFrozen
    +
    Freezable Initializeable
    +
    +
    isRequired
    +
    RequiredIdentifier
    +
    + diff --git a/latest/api/index/index-l.html b/latest/api/index/index-l.html new file mode 100644 index 0000000..9690c29 --- /dev/null +++ b/latest/api/index/index-l.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
    +
    LazyBinding
    +
    scaldi
    +
    +
    LifecycleManager
    +
    scaldi
    +
    +
    LowPriorityImmutableInjectorComposition
    +
    scaldi
    +
    +
    LowPriorityIsTypeClassExists
    +
    constraints
    +
    +
    LowPriorityMutableInjectorComposition
    +
    scaldi
    +
    +
    lifecycle
    +
    BindingWithLifecycle CanHaveLifecycle LazyBinding NonLazyBinding ProviderBinding
    +
    + diff --git a/latest/api/index/index-m.html b/latest/api/index/index-m.html new file mode 100644 index 0000000..acc4cdb --- /dev/null +++ b/latest/api/index/index-m.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + +
    +
    Module
    +
    scaldi
    +
    +
    MutableInjector
    +
    scaldi
    +
    +
    MutableInjectorAggregation
    +
    scaldi
    +
    +
    MutableInjectorUser
    +
    scaldi
    +
    +
    methodParamsAnnotations
    +
    ReflectionHelper
    +
    +
    mirror
    +
    ReflectionHelper
    +
    +
    mutableInjectorComposition
    +
    LowPriorityMutableInjectorComposition
    +
    + diff --git a/latest/api/index/index-n.html b/latest/api/index/index-n.html new file mode 100644 index 0000000..0460843 --- /dev/null +++ b/latest/api/index/index-n.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + +
    +
    NilInjector
    +
    scaldi
    +
    +
    NonLazyBinding
    +
    scaldi
    +
    +
    Not
    +
    constraints
    +
    +
    NotCondition
    +
    scaldi
    +
    +
    NotExists
    +
    constraints
    +
    +
    NotNothing
    +
    constraints
    +
    +
    name
    +
    SysPropCondition
    +
    +
    nilWithNilComposition
    +
    Injector
    +
    +
    nilWithOtherInjectorComposition
    +
    Injector
    +
    +
    noBindingFound
    +
    Injectable OpenInjectable
    +
    +
    notEv
    +
    Not
    +
    +
    notNothingEvidence
    +
    NotNothing
    +
    +
    notRequired
    +
    WordBinder
    +
    +
    ntimed
    +
    Util
    +
    + diff --git a/latest/api/index/index-o.html b/latest/api/index/index-o.html new file mode 100644 index 0000000..8c14570 --- /dev/null +++ b/latest/api/index/index-o.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
    +
    OpenInjectable
    +
    scaldi
    +
    +
    Or
    +
    constraints
    +
    +
    OrCondition
    +
    scaldi
    +
    +
    or
    +
    Condition
    +
    +
    otherInjectorWithNilComposition
    +
    Injector
    +
    +
    overrides
    +
    ReflectionHelper
    +
    + diff --git a/latest/api/index/index-p.html b/latest/api/index/index-p.html new file mode 100644 index 0000000..64164a7 --- /dev/null +++ b/latest/api/index/index-p.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + +
    +
    PropertiesInjector
    +
    scaldi
    +
    +
    ProviderBinding
    +
    scaldi
    +
    +
    partialInit
    +
    Initializeable
    +
    +
    preparedBindings
    +
    SimpleContainerInjector
    +
    + diff --git a/latest/api/index/index-r.html b/latest/api/index/index-r.html new file mode 100644 index 0000000..8ae601a --- /dev/null +++ b/latest/api/index/index-r.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + +
    +
    RawBinding
    +
    scaldi
    +
    +
    RawInjector
    +
    scaldi
    +
    +
    ReflectionBinder
    +
    scaldi
    +
    +
    ReflectionHelper
    +
    util
    +
    +
    ReflectiveBinding
    +
    ReflectionBinder
    +
    +
    RequiredIdentifier
    +
    scaldi
    +
    +
    reflectiveBindings
    +
    ReflectionBinder
    +
    +
    required
    +
    Identifier RequiredIdentifier WordBinder
    +
    + diff --git a/latest/api/index/index-s.html b/latest/api/index/index-s.html new file mode 100644 index 0000000..826b907 --- /dev/null +++ b/latest/api/index/index-s.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + +
    +
    ShutdownHookLifecycleManager
    +
    scaldi
    +
    +
    SimpleBinding
    +
    scaldi
    +
    +
    SimpleContainerInjector
    +
    scaldi
    +
    +
    StaticModule
    +
    scaldi
    +
    +
    StringCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    StringIdentifier
    +
    scaldi
    +
    +
    SymbolCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    SysPropCondition
    +
    scaldi
    +
    +
    SystemPropertiesInjector
    +
    scaldi
    +
    +
    sameAs
    +
    Identifier RequiredIdentifier StringIdentifier TypeTagIdentifier
    +
    +
    satisfies
    +
    AndCondition Condition NotCondition OrCondition SysPropCondition
    +
    +
    scaldi
    +
    root
    +
    +
    str
    +
    StringIdentifier
    +
    + diff --git a/latest/api/index/index-t.html b/latest/api/index/index-t.html new file mode 100644 index 0000000..187e5b1 --- /dev/null +++ b/latest/api/index/index-t.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + +
    +
    TypeCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    TypeTagCanBeIdentifier
    +
    CanBeIdentifier
    +
    +
    TypeTagIdentifier
    +
    scaldi
    +
    +
    TypesafeConfigInjector
    +
    scaldi
    +
    +
    target
    +
    LazyBinding NonLazyBinding ProviderBinding WorkflowHelper
    +
    +
    that
    +
    InjectConstraints
    +
    +
    timed
    +
    Util
    +
    +
    to
    +
    BindHelper
    +
    +
    toCacheUtils
    +
    Util
    +
    +
    toIdentifier
    +
    CanBeIdentifier StringCanBeIdentifier SymbolCanBeIdentifier TypeCanBeIdentifier Identifier
    +
    +
    toNonLazy
    +
    BindHelper
    +
    +
    toProvider
    +
    BindHelper
    +
    +
    tpe
    +
    TypeTagIdentifier
    +
    +
    typeClassExistsEv
    +
    IsTypeClassExists
    +
    +
    typeClassNotExistsEv
    +
    LowPriorityIsTypeClassExists
    +
    +
    typeId
    +
    TypeTagIdentifier
    +
    + diff --git a/latest/api/index/index-u.html b/latest/api/index/index-u.html new file mode 100644 index 0000000..b9f152f --- /dev/null +++ b/latest/api/index/index-u.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
    +
    Util
    +
    util
    +
    +
    unary_!
    +
    Condition
    +
    +
    util
    +
    scaldi
    +
    + diff --git a/latest/api/index/index-v.html b/latest/api/index/index-v.html new file mode 100644 index 0000000..65be0cc --- /dev/null +++ b/latest/api/index/index-v.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
    +
    value
    +
    RawBinding SysPropCondition
    +
    + diff --git a/latest/api/index/index-w.html b/latest/api/index/index-w.html new file mode 100644 index 0000000..247b683 --- /dev/null +++ b/latest/api/index/index-w.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + +
    +
    Wire
    +
    scaldi
    +
    +
    WireBuilder
    +
    scaldi
    +
    +
    WordBinder
    +
    scaldi
    +
    +
    WordBindingProvider
    +
    scaldi
    +
    +
    WorkflowHelper
    +
    Util
    +
    +
    when
    +
    CanBeConditional WordBinder
    +
    +
    which
    +
    InjectConstraints
    +
    +
    wireImpl
    +
    WireBuilder
    +
    +
    wireNoArgImpl
    +
    WireBuilder
    +
    +
    wireParam
    +
    WireBuilder
    +
    +
    wireParamList
    +
    WireBuilder
    +
    +
    wireType
    +
    WireBuilder
    +
    +
    wordBindings
    +
    WordBinder
    +
    + diff --git a/latest/api/lib/arrow-down.png b/latest/api/lib/arrow-down.png new file mode 100644 index 0000000..7229603 Binary files /dev/null and b/latest/api/lib/arrow-down.png differ diff --git a/latest/api/lib/arrow-right.png b/latest/api/lib/arrow-right.png new file mode 100644 index 0000000..b2f2935 Binary files /dev/null and b/latest/api/lib/arrow-right.png differ diff --git a/latest/api/lib/class.png b/latest/api/lib/class.png new file mode 100644 index 0000000..97edbd4 Binary files /dev/null and b/latest/api/lib/class.png differ diff --git a/latest/api/lib/class_big.png b/latest/api/lib/class_big.png new file mode 100644 index 0000000..cb1f638 Binary files /dev/null and b/latest/api/lib/class_big.png differ diff --git a/latest/api/lib/class_diagram.png b/latest/api/lib/class_diagram.png new file mode 100644 index 0000000..9d7aec7 Binary files /dev/null and b/latest/api/lib/class_diagram.png differ diff --git a/latest/api/lib/class_to_object_big.png b/latest/api/lib/class_to_object_big.png new file mode 100644 index 0000000..5dd6e38 Binary files /dev/null and b/latest/api/lib/class_to_object_big.png differ diff --git a/latest/api/lib/constructorsbg.gif b/latest/api/lib/constructorsbg.gif new file mode 100644 index 0000000..2e3f5ea Binary files /dev/null and b/latest/api/lib/constructorsbg.gif differ diff --git a/latest/api/lib/conversionbg.gif b/latest/api/lib/conversionbg.gif new file mode 100644 index 0000000..4be145d Binary files /dev/null and b/latest/api/lib/conversionbg.gif differ diff --git a/latest/api/lib/defbg-blue.gif b/latest/api/lib/defbg-blue.gif new file mode 100644 index 0000000..6903833 Binary files /dev/null and b/latest/api/lib/defbg-blue.gif differ diff --git a/latest/api/lib/defbg-green.gif b/latest/api/lib/defbg-green.gif new file mode 100644 index 0000000..36c43be Binary files /dev/null and b/latest/api/lib/defbg-green.gif differ diff --git a/latest/api/lib/diagrams.css b/latest/api/lib/diagrams.css new file mode 100644 index 0000000..5fe33f7 --- /dev/null +++ b/latest/api/lib/diagrams.css @@ -0,0 +1,143 @@ +.diagram-container +{ + display: none; +} + +.diagram +{ + overflow: hidden; + padding-top:15px; +} + +.diagram svg +{ + display: block; + position: absolute; + visibility: hidden; + margin: auto; +} + +.diagram-help +{ + float:right; + display:none; +} + +.magnifying +{ + cursor: -webkit-zoom-in ! important; + cursor: -moz-zoom-in ! important; + cursor: pointer; +} + +#close-link +{ + position: absolute; + z-index: 100; + font-family: Arial, sans-serif; + font-size: 10pt; + text-decoration: underline; + color: #315479; +} + +#close:hover +{ + text-decoration: none; +} + +svg a +{ + cursor:pointer; +} + +svg text +{ + font-size: 10px; +} + +/* try to move the node text 1px in order to be vertically + centered (does not work in all browsers) */ +svg .node text +{ + transform: translate(0px,1px); + -ms-transform: translate(0px,1px); + -webkit-transform: translate(0px,1px); + -o-transform: translate(0px,1px); + -moz-transform: translate(0px,1px); +} + +/* hover effect for edges */ + +svg .edge.over text, +svg .edge.implicit-incoming.over polygon, +svg .edge.implicit-outgoing.over polygon +{ + fill: #202020; +} + +svg .edge.over path, +svg .edge.over polygon +{ + stroke: #202020; +} + +/* hover effect for nodes in class diagrams */ + +svg.class-diagram .node +{ + opacity: 0.75; +} + +svg.class-diagram .node.this +{ + opacity: 1.0; +} + +svg.class-diagram .node.over +{ + opacity: 1.0; +} + +svg .node.over polygon +{ + stroke: #202020; +} + +/* hover effect for nodes in package diagrams */ + +svg.package-diagram .node.class.over polygon, +svg.class-diagram .node.this.class.over polygon +{ + fill: #098552; + fill: #04663e; +} + +svg.package-diagram .node.trait.over polygon, +svg.class-diagram .node.this.trait.over polygon +{ + fill: #3c7b9b; + fill: #235d7b; +} + +svg.package-diagram .node.type.over polygon, +svg.class-diagram .node.this.type.over polygon +{ + fill: #098552; + fill: #04663e; +} + + +svg.package-diagram .node.object.over polygon +{ + fill: #183377; +} + +svg.package-diagram .node.outside.over polygon +{ + fill: #d4d4d4; +} + +svg.package-diagram .node.default.over polygon +{ + fill: #d4d4d4; +} diff --git a/latest/api/lib/diagrams.js b/latest/api/lib/diagrams.js new file mode 100644 index 0000000..680ead7 --- /dev/null +++ b/latest/api/lib/diagrams.js @@ -0,0 +1,324 @@ +/** + * JavaScript functions enhancing the SVG diagrams. + * + * @author Damien Obrist + */ + +var diagrams = {}; + +/** + * Initializes the diagrams in the main window. + */ +$(document).ready(function() +{ + // hide diagrams in browsers not supporting SVG + if(Modernizr && !Modernizr.inlinesvg) + return; + + // only execute this in the main window + if(diagrams.isPopup) + return; + + if($("#content-diagram").length) + $("#inheritance-diagram").css("padding-bottom", "20px"); + + $(".diagram-container").css("display", "block"); + + $(".diagram").each(function() { + // store initial dimensions + $(this).data("width", $("svg", $(this)).width()); + $(this).data("height", $("svg", $(this)).height()); + // store unscaled clone of SVG element + $(this).data("svg", $(this).get(0).childNodes[0].cloneNode(true)); + }); + + // make diagram visible, hide container + $(".diagram").css("display", "none"); + $(".diagram svg").css({ + "position": "static", + "visibility": "visible", + "z-index": "auto" + }); + + // enable linking to diagrams + if($(location).attr("hash") == "#inheritance-diagram") { + diagrams.toggle($("#inheritance-diagram-container"), true); + } else if($(location).attr("hash") == "#content-diagram") { + diagrams.toggle($("#content-diagram-container"), true); + } + + $(".diagram-link").click(function() { + diagrams.toggle($(this).parent()); + }); + + // register resize function + $(window).resize(diagrams.resize); + + // don't bubble event to parent div + // when clicking on a node of a resized + // diagram + $("svg a").click(function(e) { + e.stopPropagation(); + }); + + diagrams.initHighlighting(); +}); + +/** + * Initializes the diagrams in the popup. + */ +diagrams.initPopup = function(id) +{ + // copy diagram from main window + if(!jQuery.browser.msie) + $("body").append(opener.$("#" + id).data("svg")); + + // positioning + $("svg").css("position", "absolute"); + $(window).resize(function() + { + var svg_w = $("svg").css("width").replace("px", ""); + var svg_h = $("svg").css("height").replace("px", ""); + var x = $(window).width() / 2 - svg_w / 2; + if(x < 0) x = 0; + var y = $(window).height() / 2 - svg_h / 2; + if(y < 0) y = 0; + $("svg").css("left", x + "px"); + $("svg").css("top", y + "px"); + }); + $(window).resize(); + + diagrams.initHighlighting(); + $("svg a").click(function(e) { + opener.diagrams.redirectFromPopup(this.href.baseVal); + window.close(); + }); + $(document).keyup(function(e) { + if (e.keyCode == 27) window.close(); + }); +} + +/** + * Initializes highlighting for nodes and edges. + */ +diagrams.initHighlighting = function() +{ + // helper function since $.hover doesn't work in IE + + function hover(elements, fn) + { + elements.mouseover(fn); + elements.mouseout(fn); + } + + // inheritance edges + + hover($("svg .edge.inheritance"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + var parts = $(this).attr("id").split("_"); + toggleClass($("#" + parts[0] + "_" + parts[1])); + toggleClass($("#" + parts[0] + "_" + parts[2])); + toggleClass($(this)); + }); + + // nodes + + hover($("svg .node"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + var parts = $(this).attr("id").split("_"); + var index = parts[1]; + $("svg#" + parts[0] + " .edge.inheritance").each(function(){ + var parts2 = $(this).attr("id").split("_"); + if(parts2[1] == index) + { + toggleClass($("#" + parts2[0] + "_" + parts2[2])); + toggleClass($(this)); + } else if(parts2[2] == index) + { + toggleClass($("#" + parts2[0] + "_" + parts2[1])); + toggleClass($(this)); + } + }); + }); + + // incoming implicits + + hover($("svg .node.implicit-incoming"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .edge.implicit-incoming")); + toggleClass($("svg .node.this")); + }); + + hover($("svg .edge.implicit-incoming"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .node.this")); + $("svg .node.implicit-incoming").each(function(){ + toggleClass($(this)); + }); + }); + + // implicit outgoing nodes + + hover($("svg .node.implicit-outgoing"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .edge.implicit-outgoing")); + toggleClass($("svg .node.this")); + }); + + hover($("svg .edge.implicit-outgoing"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .node.this")); + $("svg .node.implicit-outgoing").each(function(){ + toggleClass($(this)); + }); + }); +}; + +/** + * Resizes the diagrams according to the available width. + */ +diagrams.resize = function() +{ + // available width + var availableWidth = $("body").width() - 20; + + $(".diagram-container").each(function() { + // unregister click event on whole div + $(".diagram", this).unbind("click"); + var diagramWidth = $(".diagram", this).data("width"); + var diagramHeight = $(".diagram", this).data("height"); + + if(diagramWidth > availableWidth) + { + // resize diagram + var height = diagramHeight / diagramWidth * availableWidth; + $(".diagram svg", this).width(availableWidth); + $(".diagram svg", this).height(height); + + // register click event on whole div + $(".diagram", this).click(function() { + diagrams.popup($(this)); + }); + $(".diagram", this).addClass("magnifying"); + } + else + { + // restore full size of diagram + $(".diagram svg", this).width(diagramWidth); + $(".diagram svg", this).height(diagramHeight); + // don't show custom cursor any more + $(".diagram", this).removeClass("magnifying"); + } + }); +}; + +/** + * Shows or hides a diagram depending on its current state. + */ +diagrams.toggle = function(container, dontAnimate) +{ + // change class of link + $(".diagram-link", container).toggleClass("open"); + // get element to show / hide + var div = $(".diagram", container); + if (div.is(':visible')) + { + $(".diagram-help", container).hide(); + div.unbind("click"); + div.removeClass("magnifying"); + div.slideUp(100); + } + else + { + diagrams.resize(); + if(dontAnimate) + div.show(); + else + div.slideDown(100); + $(".diagram-help", container).show(); + } +}; + +/** + * Opens a popup containing a copy of a diagram. + */ +diagrams.windows = {}; +diagrams.popup = function(diagram) +{ + var id = diagram.attr("id"); + if(!diagrams.windows[id] || diagrams.windows[id].closed) { + var title = $(".symbol .name", $("#signature")).text(); + // cloning from parent window to popup somehow doesn't work in IE + // therefore include the SVG as a string into the HTML + var svgIE = jQuery.browser.msie ? $("
    ").append(diagram.data("svg")).html() : ""; + var html = '' + + '\n' + + '\n' + + '\n' + + ' \n' + + ' ' + title + '\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' Close this window\n' + + ' ' + svgIE + '\n' + + ' \n' + + ''; + + var padding = 30; + var screenHeight = screen.availHeight; + var screenWidth = screen.availWidth; + var w = Math.min(screenWidth, diagram.data("width") + 2 * padding); + var h = Math.min(screenHeight, diagram.data("height") + 2 * padding); + var left = (screenWidth - w) / 2; + var top = (screenHeight - h) / 2; + var parameters = "height=" + h + ", width=" + w + ", left=" + left + ", top=" + top + ", scrollbars=yes, location=no, resizable=yes"; + var win = window.open("about:blank", "_blank", parameters); + win.document.open(); + win.document.write(html); + win.document.close(); + diagrams.windows[id] = win; + } + win.focus(); +}; + +/** + * This method is called from within the popup when a node is clicked. + */ +diagrams.redirectFromPopup = function(url) +{ + window.location = url; +}; + +/** + * Helper method that adds a class to a SVG element. + */ +diagrams.addClass = function(svgElem, newClass) { + newClass = newClass || "over"; + var classes = svgElem.attr("class"); + if ($.inArray(newClass, classes.split(/\s+/)) == -1) { + classes += (classes ? ' ' : '') + newClass; + svgElem.attr("class", classes); + } +}; + +/** + * Helper method that removes a class from a SVG element. + */ +diagrams.removeClass = function(svgElem, oldClass) { + oldClass = oldClass || "over"; + var classes = svgElem.attr("class"); + classes = $.grep(classes.split(/\s+/), function(n, i) { return n != oldClass; }).join(' '); + svgElem.attr("class", classes); +}; + diff --git a/latest/api/lib/filter_box_left.png b/latest/api/lib/filter_box_left.png new file mode 100644 index 0000000..0e8c893 Binary files /dev/null and b/latest/api/lib/filter_box_left.png differ diff --git a/latest/api/lib/filter_box_left2.gif b/latest/api/lib/filter_box_left2.gif new file mode 100644 index 0000000..b9b4907 Binary files /dev/null and b/latest/api/lib/filter_box_left2.gif differ diff --git a/latest/api/lib/filter_box_right.png b/latest/api/lib/filter_box_right.png new file mode 100644 index 0000000..f127e35 Binary files /dev/null and b/latest/api/lib/filter_box_right.png differ diff --git a/latest/api/lib/filterbg.gif b/latest/api/lib/filterbg.gif new file mode 100644 index 0000000..542ba4a Binary files /dev/null and b/latest/api/lib/filterbg.gif differ diff --git a/latest/api/lib/filterboxbarbg.gif b/latest/api/lib/filterboxbarbg.gif new file mode 100644 index 0000000..b5075c1 Binary files /dev/null and b/latest/api/lib/filterboxbarbg.gif differ diff --git a/latest/api/lib/filterboxbarbg.png b/latest/api/lib/filterboxbarbg.png new file mode 100644 index 0000000..d613cf5 Binary files /dev/null and b/latest/api/lib/filterboxbarbg.png differ diff --git a/latest/api/lib/filterboxbg.gif b/latest/api/lib/filterboxbg.gif new file mode 100644 index 0000000..ae2f858 Binary files /dev/null and b/latest/api/lib/filterboxbg.gif differ diff --git a/latest/api/lib/fullcommenttopbg.gif b/latest/api/lib/fullcommenttopbg.gif new file mode 100644 index 0000000..a0d93f4 Binary files /dev/null and b/latest/api/lib/fullcommenttopbg.gif differ diff --git a/latest/api/lib/index.css b/latest/api/lib/index.css new file mode 100644 index 0000000..3e352a9 --- /dev/null +++ b/latest/api/lib/index.css @@ -0,0 +1,339 @@ +* { + color: inherit; + font-size: 10pt; + text-decoration: none; + font-family: Arial, sans-serif; + border-width: 0px; + padding: 0px; + margin: 0px; +} + +a { + cursor: pointer; +} + +a:hover { + text-decoration: underline; +} + +h1 { + display: none; +} + +.selected { + -moz-box-shadow: inset 0px 5px 10px rgba(58, 88, 97, .36); + -webkit-box-shadow: inset 0px 5px 10px rgba(58, 88, 97, .36); + border-top: solid 1px rgba(119, 138, 153, 0.8); + border-bottom: solid 1px rgba(151, 173, 191, 0.4); + background-color: #ced2d9; + margin: -1px 0px; +} + +/*.letters { + font-family: monospace; + font-size: 2pt; + padding: 5px; + background-color: #DADADA; + text-shadow: #ffffff 0 1px 0; +}*/ + +#library { + display: none; +} + +#browser { + top: 0px; + left: 0px; + bottom: 0px; + width: 100%; + display: block; + position: fixed; +} + +#filter { + position: absolute; + display: block; +/* padding: 5px;*/ + right: 0; + left: 0; + top: 0; + background-image:url('filterbg.gif'); + background-repeat:repeat-x; + background-color: #ededee; /* light gray */ + /*background-color: #DADADA;*/ + border:1px solid #bbbbbb; + border-top:0; + border-left:0; + border-right:0; +} + +#textfilter { + position: relative; + display: block; + height: 20px; + margin-top: 5px; + margin-bottom: 5px; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 23px; + width: 21px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 20px; + padding: 1px; + font-weight: bold; + color: #000000; + background: #ffffff url("filterboxbarbg.png") repeat-x bottom left; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 23px; + width: 21px; + background: url("filter_box_right.png"); +} + +/*#textfilter { + position: relative; + display: block; + height: 20px; + margin-bottom: 5px; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 20px; + width: 20px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 16px; + padding: 2px; + font-weight: bold; + color: darkblue; + background-color: white; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 20px; + width: 20px; + background: url("filter_box_right.png"); +}*/ + +#focusfilter { + position: relative; + text-align: center; + display: block; + padding: 5px; + background-color: #fffebd; /* light yellow*/ + text-shadow: #ffffff 0 1px 0; +} + +#focusfilter .focuscoll { + font-weight: bold; + text-shadow: #ffffff 0 1px 0; +} + +#focusfilter img { + bottom: -2px; + position: relative; +} + +#kindfilter { + position: relative; + display: block; + padding: 5px; +/* background-color: #999;*/ + text-align: center; +} + +#kindfilter > a { + color: black; +/* text-decoration: underline;*/ + text-shadow: #ffffff 0 1px 0; + +} + +#kindfilter > a:hover { + color: #4C4C4C; + text-decoration: none; + text-shadow: #ffffff 0 1px 0; +} + +#letters { + position: relative; + text-align: center; + padding-bottom: 5px; + border:1px solid #bbbbbb; + border-top:0; + border-left:0; + border-right:0; +} + +#letters > a, #letters > span { +/* font-family: monospace;*/ + color: #858484; + font-weight: bold; + font-size: 8pt; + text-shadow: #ffffff 0 1px 0; + padding-right: 2px; +} + +#letters > span { + color: #bbb; +} + +#tpl { + display: block; + position: fixed; + overflow: auto; + right: 0; + left: 0; + bottom: 0; + top: 5px; + position: absolute; + display: block; +} + +#tpl .packhide { + display: block; + float: right; + font-weight: normal; + color: white; +} + +#tpl .packfocus { + display: block; + float: right; + font-weight: normal; + color: white; +} + +#tpl .packages > ol { + background-color: #dadfe6; + /*margin-bottom: 5px;*/ +} + +/*#tpl .packages > ol > li { + margin-bottom: 1px; +}*/ + +#tpl .packages > li > a { + padding: 0px 5px; +} + +#tpl .packages > li > a.tplshow { + display: block; + color: white; + font-weight: bold; + display: block; + text-shadow: #000000 0 1px 0; +} + +#tpl ol > li.pack { + padding: 3px 5px; + background: url("packagesbg.gif"); + background-repeat:repeat-x; + min-height: 14px; + background-color: #6e808e; +} + +#tpl ol > li { + display: block; +} + +#tpl .templates > li { + padding-left: 5px; + min-height: 18px; +} + +#tpl ol > li .icon { + padding-right: 5px; + bottom: -2px; + position: relative; +} + +#tpl .templates div.placeholder { + padding-right: 5px; + width: 13px; + display: inline-block; +} + +#tpl .templates span.tplLink { + padding-left: 5px; +} + +#content { + border-left-width: 1px; + border-left-color: black; + border-left-style: white; + right: 0px; + left: 0px; + bottom: 0px; + top: 0px; + position: fixed; + margin-left: 300px; + display: block; + -webkit-overflow-scrolling: touch; +} + +#content > iframe { + display: block; + height: 100%; + width: 100%; +} + +.ui-layout-pane { + background: #FFF; + overflow: auto; +} + +.ui-layout-resizer { + background-image:url('filterbg.gif'); + background-repeat:repeat-x; + background-color: #ededee; /* light gray */ + border:1px solid #bbbbbb; + border-top:0; + border-bottom:0; + border-left: 0; +} + +.ui-layout-toggler { + background: #AAA; +} \ No newline at end of file diff --git a/latest/api/lib/index.js b/latest/api/lib/index.js new file mode 100644 index 0000000..3d9cf8d --- /dev/null +++ b/latest/api/lib/index.js @@ -0,0 +1,567 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Johannes Rudolph, "spiros" and Marcin Kubala + +var topLevelTemplates = undefined; +var topLevelPackages = undefined; + +var scheduler = undefined; + +var kindFilterState = undefined; +var focusFilterState = undefined; + +var title = $(document).attr('title'); + +var lastFragment = ""; + +$(document).ready(function() { + $('body').layout({ + west__size: '20%', + center__maskContents: true + }); + $('#browser').layout({ + center__paneSelector: ".ui-west-center" + //,center__initClosed:true + ,north__paneSelector: ".ui-west-north" + }); + $('iframe').bind("load", function(){ + try { + var subtitle = $(this).contents().find('title').text(); + $(document).attr('title', (title ? title + " - " : "") + subtitle); + } catch (e) { + // Chrome doesn't allow reading the iframe's contents when + // used on the local file system. + } + setUrlFragmentFromFrameSrc(); + }); + + // workaround for IE's iframe sizing lack of smartness + if($.browser.msie) { + function fixIFrame() { + $('iframe').height($(window).height() ) + } + $('iframe').bind("load",fixIFrame) + $('iframe').bind("resize",fixIFrame) + } + + scheduler = new Scheduler(); + scheduler.addLabel("init", 1); + scheduler.addLabel("focus", 2); + scheduler.addLabel("filter", 4); + + prepareEntityList(); + + configureTextFilter(); + configureKindFilter(); + configureEntityList(); + + setFrameSrcFromUrlFragment(); + + // If the url fragment changes, adjust the src of iframe "template". + $(window).bind('hashchange', function() { + if(lastFragment != window.location.hash) { + lastFragment = window.location.hash; + setFrameSrcFromUrlFragment(); + } + }); +}); + +// Set the iframe's src according to the fragment of the current url. +// fragment = "#scala.Either" => iframe url = "scala/Either.html" +// fragment = "#scala.Either@isRight:Boolean" => iframe url = "scala/Either.html#isRight:Boolean" +// fragment = "#scalaz.iteratee.package@>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" => iframe url = "scalaz/iteratee/package.html#>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" +function setFrameSrcFromUrlFragment() { + + function extractLoc(fragment) { + var loc = fragment.split('@')[0].replace(/\./g, "/"); + if (loc.indexOf(".html") < 0) { + loc += ".html"; + } + return loc; + } + + function extractMemberSig(fragment) { + var splitIdx = fragment.indexOf('@'); + if (splitIdx < 0) { + return; + } + return fragment.substr(splitIdx + 1); + } + + var fragment = location.hash.slice(1); + if (fragment) { + var locWithMemeberSig = extractLoc(fragment); + var memberSig = extractMemberSig(fragment); + if (memberSig) { + locWithMemeberSig += "#" + memberSig; + } + frames["template"].location.replace(location.protocol + locWithMemeberSig); + } else { + console.log("empty fragment detected"); + frames["template"].location.replace("package.html"); + } +} + +// Set the url fragment according to the src of the iframe "template". +// iframe url = "scala/Either.html" => url fragment = "#scala.Either" +// iframe url = "scala/Either.html#isRight:Boolean" => url fragment = "#scala.Either@isRight:Boolean" +// iframe url = "scalaz/iteratee/package.html#>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" => fragment = "#scalaz.iteratee.package@>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" +function setUrlFragmentFromFrameSrc() { + try { + var commonLength = location.pathname.lastIndexOf("/"); + var frameLocation = frames["template"].location; + var relativePath = frameLocation.pathname.slice(commonLength + 1); + + if(!relativePath || frameLocation.pathname.indexOf("/") < 0) + return; + + // Add #, remove ".html" and replace "/" with "." + fragment = "#" + relativePath.replace(/\.html$/, "").replace(/\//g, "."); + + // Add the frame's hash after an @ + if(frameLocation.hash) fragment += ("@" + frameLocation.hash.slice(1)); + + // Use replace to not add history items + lastFragment = fragment; + location.replace(fragment); + } + catch(e) { + // Chrome doesn't allow reading the iframe's location when + // used on the local file system. + } +} + +var Index = {}; + +(function (ns) { + function openLink(t, type) { + var href; + if (type == 'object') { + href = t['object']; + } else { + href = t['class'] || t['trait'] || t['case class'] || t['type']; + } + return [ + '' + ].join(''); + } + + function createPackageHeader(pack) { + return [ + '
  1. ', + 'focushide', + '', + pack, + '
  2. ' + ].join(''); + }; + + function createListItem(template) { + var inner = ''; + + + if (template.object) { + inner += openLink(template, 'object'); + } + + if (template['class'] || template['trait'] || template['case class'] || template['type']) { + inner += (inner == '') ? + '
    ' : ''; + inner += openLink(template, template['trait'] ? 'trait' : template['type'] ? 'type' : 'class'); + } else { + inner += '
    '; + } + + return [ + '
  3. ', + inner, + '', + template.name.replace(/^.*\./, ''), + '
  4. ' + ].join(''); + } + + + ns.createPackageTree = function (pack, matched, focused) { + var html = $.map(matched, function (child, i) { + return createListItem(child); + }).join(''); + + var header; + if (focused && pack == focused) { + header = ''; + } else { + header = createPackageHeader(pack); + } + + return [ + '
      ', + header, + '
        ', + html, + '
    ' + ].join(''); + } + + ns.keys = function (obj) { + var result = []; + var key; + for (key in obj) { + result.push(key); + } + return result; + } + + var hiddenPackages = {}; + + function subPackages(pack) { + return $.grep($('#tpl ol.packages'), function (element, index) { + var pack = $('li.pack > .tplshow', element).text(); + return pack.indexOf(pack + '.') == 0; + }); + } + + ns.hidePackage = function (ol) { + var selected = $('li.pack > .tplshow', ol).text(); + hiddenPackages[selected] = true; + + $('ol.templates', ol).hide(); + + $.each(subPackages(selected), function (index, element) { + $(element).hide(); + }); + } + + ns.showPackage = function (ol, state) { + var selected = $('li.pack > .tplshow', ol).text(); + hiddenPackages[selected] = false; + + $('ol.templates', ol).show(); + + $.each(subPackages(selected), function (index, element) { + $(element).show(); + + // When the filter is in "packs" state, + // we don't want to show the `.templates` + var key = $('li.pack > .tplshow', element).text(); + if (hiddenPackages[key] || state == 'packs') { + $('ol.templates', element).hide(); + } + }); + } + +})(Index); + +function configureEntityList() { + kindFilterSync(); + configureHideFilter(); + configureFocusFilter(); + textFilter(); +} + +/* Updates the list of entities (i.e. the content of the #tpl element) from the raw form generated by Scaladoc to a + form suitable for display. In particular, it adds class and object etc. icons, and it configures links to open in + the right frame. Furthermore, it sets the two reference top-level entities lists (topLevelTemplates and + topLevelPackages) to serve as reference for resetting the list when needed. + Be advised: this function should only be called once, on page load. */ +function prepareEntityList() { + var classIcon = $("#library > img.class"); + var traitIcon = $("#library > img.trait"); + var typeIcon = $("#library > img.type"); + var objectIcon = $("#library > img.object"); + var packageIcon = $("#library > img.package"); + + $('#tpl li.pack > a.tplshow').attr("target", "template"); + $('#tpl li.pack').each(function () { + $("span.class", this).each(function() { $(this).replaceWith(classIcon.clone()); }); + $("span.trait", this).each(function() { $(this).replaceWith(traitIcon.clone()); }); + $("span.type", this).each(function() { $(this).replaceWith(typeIcon.clone()); }); + $("span.object", this).each(function() { $(this).replaceWith(objectIcon.clone()); }); + $("span.package", this).each(function() { $(this).replaceWith(packageIcon.clone()); }); + }); + $('#tpl li.pack') + .prepend("hide") + .prepend("focus"); +} + +/* Handles all key presses while scrolling around with keyboard shortcuts in left panel */ +function keyboardScrolldownLeftPane() { + scheduler.add("init", function() { + $("#textfilter input").blur(); + var $items = $("#tpl li"); + $items.first().addClass('selected'); + + $(window).bind("keydown", function(e) { + var $old = $items.filter('.selected'), + $new; + + switch ( e.keyCode ) { + + case 9: // tab + $old.removeClass('selected'); + break; + + case 13: // enter + $old.removeClass('selected'); + var $url = $old.children().filter('a:last').attr('href'); + $("#template").attr("src",$url); + break; + + case 27: // escape + $old.removeClass('selected'); + $(window).unbind(e); + $("#textfilter input").focus(); + + break; + + case 38: // up + $new = $old.prev(); + + if (!$new.length) { + $new = $old.parent().prev(); + } + + if ($new.is('ol') && $new.children(':last').is('ol')) { + $new = $new.children().children(':last'); + } else if ($new.is('ol')) { + $new = $new.children(':last'); + } + + break; + + case 40: // down + $new = $old.next(); + if (!$new.length) { + $new = $old.parent().parent().next(); + } + if ($new.is('ol')) { + $new = $new.children(':first'); + } + break; + } + + if ($new.is('li')) { + $old.removeClass('selected'); + $new.addClass('selected'); + } else if (e.keyCode == 38) { + $(window).unbind(e); + $("#textfilter input").focus(); + } + }); + }); +} + +/* Configures the text filter */ +function configureTextFilter() { + scheduler.add("init", function() { + $("#textfilter").append(""); + var input = $("#textfilter input"); + resizeFilterBlock(); + input.bind('keyup', function(event) { + if (event.keyCode == 27) { // escape + input.attr("value", ""); + } + if (event.keyCode == 40) { // down arrow + $(window).unbind("keydown"); + keyboardScrolldownLeftPane(); + return false; + } + textFilter(); + }); + input.bind('keydown', function(event) { + if (event.keyCode == 9) { // tab + $("#template").contents().find("#mbrsel-input").focus(); + input.attr("value", ""); + return false; + } + textFilter(); + }); + input.focus(function(event) { input.select(); }); + }); + scheduler.add("init", function() { + $("#textfilter > .post").click(function(){ + $("#textfilter input").attr("value", ""); + textFilter(); + }); + }); +} + +function compilePattern(query) { + var escaped = query.replace(/([\.\*\+\?\|\(\)\[\]\\])/g, '\\$1'); + + if (query.toLowerCase() != query) { + // Regexp that matches CamelCase subbits: "BiSe" is + // "[a-z]*Bi[a-z]*Se" and matches "BitSet", "ABitSet", ... + return new RegExp(escaped.replace(/([A-Z])/g,"[a-z]*$1")); + } + else { // if query is all lower case make a normal case insensitive search + return new RegExp(escaped, "i"); + } +} + +// Filters all focused templates and packages. This function should be made less-blocking. +// @param query The string of the query +function textFilter() { + var query = $("#textfilter input").attr("value") || ''; + var queryRegExp = compilePattern(query); + + if ((typeof textFilter.lastQuery === "undefined") || (textFilter.lastQuery !== query)) { + + textFilter.lastQuery = query; + + scheduler.clear("filter"); + + $('#tpl').html(''); + + var index = 0; + + var searchLoop = function () { + var packages = Index.keys(Index.PACKAGES).sort(); + + while (packages[index]) { + var pack = packages[index]; + var children = Index.PACKAGES[pack]; + index++; + + if (focusFilterState) { + if (pack == focusFilterState || + pack.indexOf(focusFilterState + '.') == 0) { + ; + } else { + continue; + } + } + + var matched = $.grep(children, function (child, i) { + return queryRegExp.test(child.name); + }); + + if (matched.length > 0) { + $('#tpl').append(Index.createPackageTree(pack, matched, + focusFilterState)); + scheduler.add('filter', searchLoop); + return; + } + } + + $('#tpl a.packfocus').click(function () { + focusFilter($(this).parent().parent()); + }); + configureHideFilter(); + }; + + scheduler.add('filter', searchLoop); + } +} + +/* Configures the hide tool by adding the hide link to all packages. */ +function configureHideFilter() { + $('#tpl li.pack a.packhide').click(function () { + var packhide = $(this) + var action = packhide.text(); + + var ol = $(this).parent().parent(); + + if (action == "hide") { + Index.hidePackage(ol); + packhide.text("show"); + } + else { + Index.showPackage(ol, kindFilterState); + packhide.text("hide"); + } + return false; + }); +} + +/* Configures the focus tool by adding the focus bar in the filter box (initially hidden), and by adding the focus + link to all packages. */ +function configureFocusFilter() { + scheduler.add("init", function() { + focusFilterState = null; + if ($("#focusfilter").length == 0) { + $("#filter").append("
    focused on
    "); + $("#focusfilter > .focusremove").click(function(event) { + textFilter(); + + $("#focusfilter").hide(); + $("#kindfilter").show(); + resizeFilterBlock(); + focusFilterState = null; + }); + $("#focusfilter").hide(); + resizeFilterBlock(); + } + }); + scheduler.add("init", function() { + $('#tpl li.pack a.packfocus').click(function () { + focusFilter($(this).parent()); + return false; + }); + }); +} + +/* Focuses the entity index on a specific package. To do so, it will copy the sub-templates and sub-packages of the + focuses package into the top-level templates and packages position of the index. The original top-level + @param package The
  5. element that corresponds to the package in the entity index */ +function focusFilter(package) { + scheduler.clear("filter"); + + var currentFocus = $('li.pack > .tplshow', package).text(); + $("#focusfilter > .focuscoll").empty(); + $("#focusfilter > .focuscoll").append(currentFocus); + + $("#focusfilter").show(); + $("#kindfilter").hide(); + resizeFilterBlock(); + focusFilterState = currentFocus; + kindFilterSync(); + + textFilter(); +} + +function configureKindFilter() { + scheduler.add("init", function() { + kindFilterState = "all"; + $("#filter").append(""); + $("#kindfilter > a").click(function(event) { kindFilter("packs"); }); + resizeFilterBlock(); + }); +} + +function kindFilter(kind) { + if (kind == "packs") { + kindFilterState = "packs"; + kindFilterSync(); + $("#kindfilter > a").replaceWith("display all entities"); + $("#kindfilter > a").click(function(event) { kindFilter("all"); }); + } + else { + kindFilterState = "all"; + kindFilterSync(); + $("#kindfilter > a").replaceWith("display packages only"); + $("#kindfilter > a").click(function(event) { kindFilter("packs"); }); + } +} + +/* Applies the kind filter. */ +function kindFilterSync() { + if (kindFilterState == "all" || focusFilterState != null) { + $("#tpl a.packhide").text('hide'); + $("#tpl ol.templates").show(); + } else { + $("#tpl a.packhide").text('show'); + $("#tpl ol.templates").hide(); + } +} + +function resizeFilterBlock() { + $("#tpl").css("top", $("#filter").outerHeight(true)); +} diff --git a/latest/api/lib/jquery-ui.js b/latest/api/lib/jquery-ui.js new file mode 100644 index 0000000..faab0cf --- /dev/null +++ b/latest/api/lib/jquery-ui.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.9.0 - 2012-10-05 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.slider.js, jquery.ui.sortable.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js +* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ + +(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"||e.expr.filters.hidden(this)}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.0",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on({remove:"destroy"}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("
    "),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};lr(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)a&&(v<0||v0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);(function(e,t){var n=0,r={},i={};r.height=r.paddingTop=r.paddingBottom=r.borderTopWidth=r.borderBottomWidth="hide",i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.9.0",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&r.active===!1&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.originalHeight=this.element[0].style.height,this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&(this.element.css("height",this.originalHeight),e.css("height",""))},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();this.element.css("height",this.originalHeight),r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).height("").height())}).height(t)),r!=="content"&&this.element.height(this.element.height())},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on({keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
  6. "+(o[0]>0&&I==o[1]-1?'
    ':""):""),F+=U}B+=F}return B+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!e.inline?'':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
    ',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
    ",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.0",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.0",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s=(this.uiDialog=e("
    ")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),o=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),u=(this.uiDialogTitlebar=e("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(s),a=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(u),f=(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(a),l=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(u),c=(this.uiDialogButtonPane=e("
    ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),h=(this.uiButtonSet=e("
    ")).addClass("ui-dialog-buttonset").appendTo(c);s.attr({role:"dialog","aria-labelledby":l.attr("id")}),u.find("*").add(u).disableSelection(),this._hoverable(a),this._focusable(a),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this.uiDialog.hide(this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n,r,i=this,s=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(s=!0)}),s?(e.each(t,function(t,n){n=e.isFunction(n)?{click:n,text:t}:n;var r=e("
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.browser.msie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.leftu[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.topu[3]?f-this.offset.click.topu[2]?l-this.offset.click.left=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s=l&&o<=c||u>=l&&u<=c||oc)&&(i>=a&&i<=f||s>=a&&s<=f||if);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;oe?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[],m;i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e,t){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s,u,a,f;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(r){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i,s;if(t&&t.length&&t[0]&&t[t[0]]){s=t.length;while(s--)r=t[s],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(n,r,i,s){e.isPlainObject(n)&&(r=n,n=n.effect),n={effect:n},r===t&&(r={}),e.isFunction(r)&&(s=r,i=null,r={});if(typeof r=="number"||e.fx.speeds[r])s=i,i=r,r={};return e.isFunction(i)&&(s=i,i=null),r&&e.extend(n,r),i=i||r.duration,n.duration=e.fx.off?0:typeof i=="number"?i:i in e.fx.speeds?e.fx.speeds[i]:e.fx.speeds._default,n.complete=s||r.complete,n}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.0",save:function(e,t){for(var n=0;n
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(t,r,s,o){function h(t){function s(){e.isFunction(r)&&r.call(n[0]),e.isFunction(t)&&t()}var n=e(this),r=u.complete,i=u.mode;(n.is(":hidden")?i==="hide":i==="show")?s():l.call(n[0],u,s)}var u=i.apply(this,arguments),a=u.mode,f=u.queue,l=e.effects.effect[u.effect],c=!l&&n&&e.effects[u.effect];return e.fx.off||!l&&!c?a?this[a](u.duration,u.complete):this.each(function(){u.complete&&u.complete.call(this)}):l?f===!1?this.each(h):this.queue(f||"fx",h):c.call(this,{options:u,duration:u.duration,callback:u.complete,mode:u.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
    ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height","overflow","opacity"],s=["position","top","bottom","left","right","overflow","opacity"],o=["width","height","overflow"],u=["fontSize"],a=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=e.effects.setMode(r,t.mode||"effect"),c=t.restore||l!=="effect",h=t.scale||"both",p=t.origin||["middle","center"],d,v,m,g=r.css("position");l==="show"&&r.show(),d={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},r.from=t.from||d,r.to=t.to||d,m={from:{y:r.from.height/d.height,x:r.from.width/d.width},to:{y:r.to.height/d.height,x:r.to.width/d.width}};if(h==="box"||h==="both")m.from.y!==m.to.y&&(i=i.concat(a),r.from=e.effects.setTransition(r,a,m.from.y,r.from),r.to=e.effects.setTransition(r,a,m.to.y,r.to)),m.from.x!==m.to.x&&(i=i.concat(f),r.from=e.effects.setTransition(r,f,m.from.x,r.from),r.to=e.effects.setTransition(r,f,m.to.x,r.to));(h==="content"||h==="both")&&m.from.y!==m.to.y&&(i=i.concat(u),r.from=e.effects.setTransition(r,u,m.from.y,r.from),r.to=e.effects.setTransition(r,u,m.to.y,r.to)),e.effects.save(r,c?i:s),r.show(),e.effects.createWrapper(r),r.css("overflow","hidden").css(r.from),p&&(v=e.effects.getBaseline(p,d),r.from.top=(d.outerHeight-r.outerHeight())*v.y,r.from.left=(d.outerWidth-r.outerWidth())*v.x,r.to.top=(d.outerHeight-r.to.outerHeight)*v.y,r.to.left=(d.outerWidth-r.to.outerWidth)*v.x),r.css(r.from);if(h==="content"||h==="both")a=a.concat(["marginTop","marginBottom"]).concat(u),f=f.concat(["marginLeft","marginRight"]),o=i.concat(a).concat(f),r.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width()};c&&e.effects.save(n,o),n.from={height:r.height*m.from.y,width:r.width*m.from.x},n.to={height:r.height*m.to.y,width:r.width*m.to.x},m.from.y!==m.to.y&&(n.from=e.effects.setTransition(n,a,m.from.y,n.from),n.to=e.effects.setTransition(n,a,m.to.y,n.to)),m.from.x!==m.to.x&&(n.from=e.effects.setTransition(n,f,m.from.x,n.from),n.to=e.effects.setTransition(n,f,m.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){c&&e.effects.restore(n,o)})});r.animate(r.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){r.to.opacity===0&&r.css("opacity",r.from.opacity),l==="hide"&&r.hide(),e.effects.restore(r,c?i:s),c||(g==="static"?r.css({position:"relative",top:r.to.top,left:r.to.left}):e.each(["top","left"],function(e,t){r.css(t,function(t,n){var i=parseInt(n,10),s=e?r.to.left:r.to.top;return n==="auto"?s+"px":i+s+"px"})})),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
    ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);(function(e,t){var n=!1;e.widget("ui.menu",{version:"1.9.0",defaultElement:"
      ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus+":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"});t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),r.each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
    ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){e.widget("ui.resizable",e.ui.mouse,{version:"1.9.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var t=this,n=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i
    ');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;n.after(this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),ie.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r
    ');var r=e.browser.msie&&e.browser.version<7,i=r?1:0,s=r?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+s,height:this.element.outerHeight()+s,position:"absolute",left:this.elementOffset.left-i+"px",top:this.elementOffset.top-i+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.rightu||a.bottomi&&a.rights&&a.bottom").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(r.range==="min"||r.range==="max"?" ui-slider-range-"+r.range:"")));for(t=i.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(e){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r,i){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e,t){e.widget("ui.sortable",e.ui.mouse,{version:"1.9.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");for(var t=0;t=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else if(this.currentContainer!=this.containers[r]){var s=1e4,o=null,u=this.positionAbs[this.containers[r].floating?"left":"top"];for(var a=this.items.length-1;a>=0;a--){if(!e.contains(this.containers[r].element[0],this.items[a].item[0]))continue;var f=this.containers[r].floating?this.items[a].item.offset().left:this.items[a].item.offset().top;Math.abs(f-u)0?"down":"up")}if(!o&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[r],o?this._rearrange(t,o,null,!0):this._rearrange(t,null,this.containers[r].element,!0),this._trigger("change",t,this._uiHash()),this.containers[r]._trigger("change",t,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):n.helper=="clone"?this.currentItem.clone():this.currentItem;return r.parents("body").length||e(n.appendTo!="parent"?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(r[0].style.width==""||n.forceHelperSize)&&r.width(this.currentItem.width()),(r[0].style.height==""||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.browser.msie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)){var n=e(t.containment)[0],r=e(t.containment).offset(),i=e(n).css("overflow")!="hidden";this.containment=[r.left+(parseInt(e(n).css("borderLeftWidth"),10)||0)+(parseInt(e(n).css("paddingLeft"),10)||0)-this.margins.left,r.top+(parseInt(e(n).css("borderTopWidth"),10)||0)+(parseInt(e(n).css("paddingTop"),10)||0)-this.margins.top,r.left+(i?Math.max(n.scrollWidth,n.offsetWidth):n.offsetWidth)-(parseInt(e(n).css("borderLeftWidth"),10)||0)-(parseInt(e(n).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,r.top+(i?Math.max(n.scrollHeight,n.offsetHeight):n.offsetHeight)-(parseInt(e(n).css("borderTopWidth"),10)||0)-(parseInt(e(n).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var s=t.pageX,o=t.pageY;if(this.originalPosition){this.containment&&(t.pageX-this.offset.click.leftthis.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.topthis.containment[3]?u-this.offset.click.topthis.containment[2]?a-this.offset.click.left=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active"),this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.uiSpinner.removeClass("ui-state-active"),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(e),this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return"▲"+""+""+"▼"+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.0",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t,n=this,r=this.options,i=r.active;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",r.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(i===null){location.hash&&this.anchors.each(function(e,t){if(t.hash===location.hash)return i=e,!1}),i===null&&(i=this.tabs.filter(".ui-tabs-active").index());if(i===null||i===-1)i=this.tabs.length?0:!1}i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),i===-1&&(i=r.collapsible?!1:0)),r.active=i,!r.collapsible&&r.active===!1&&this.anchors.length&&(r.active=0),e.isArray(r.disabled)&&(r.disabled=e.unique(r.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return n.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(r.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t,n=this.options,r=this.tablist.children(":has(a[href])");n.disabled=e.map(r.filter(".ui-state-disabled"),function(e){return r.index(e)}),this._processTabs(),n.active===!1||!this.anchors.length?(n.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===n.disabled.length?(n.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,n.active-1),!1)):n.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
    ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t,n){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e,t){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  7. #{label}
  8. "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(e){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r=this._superApply(arguments);return r?(e==="beforeActivate"&&n.newTab.length?r=this._super("select",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()}):e==="activate"&&n.newTab.length&&(r=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),r):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(e){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.0",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={}},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=e(t?t.target:this.element).closest(this.options.items);if(!n.length)return;if(this.options.track&&n.data("ui-tooltip-id")){this._find(n).position(e.extend({of:n},this.options.position)),this._off(this.document,"mousemove");return}n.attr("title")&&n.data("ui-tooltip-title",n.attr("title")),n.data("tooltip-open",!0),this._updateContent(n,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("tooltip-open"))return;i._delay(function(){this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function u(e){o.of=e,s.position(o)}var s,o;if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.originalEvent.type)?(o=e.extend({},this.options.position),this._on(this.document,{mousemove:u}),u(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this._trigger("open",t,{tooltip:s}),this._on(r,{mouseleave:"close",focusout:"close",keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}}})},close:function(t,n){var i=this,s=e(t?t.currentTarget:this.element),o=this._find(s);if(this.closing)return;if(!n&&t&&t.type!=="focusout"&&this.document[0].activeElement===s[0])return;s.data("ui-tooltip-title")&&s.attr("title",s.data("ui-tooltip-title")),r(s),o.stop(!0),this._hide(o,this.options.hide,function(){e(this).remove(),delete i.tooltips[this.id]}),s.removeData("tooltip-open"),this._off(s,"mouseleave focusout keyup"),this._off(this.document,"mousemove"),this.closing=!0,this._trigger("close",t,{tooltip:o}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery); \ No newline at end of file diff --git a/latest/api/lib/jquery.js b/latest/api/lib/jquery.js new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ b/latest/api/lib/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
    a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
    t
    ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
    ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
    ",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

    ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
    ","
    "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
    ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/latest/api/lib/jquery.layout.js b/latest/api/lib/jquery.layout.js new file mode 100644 index 0000000..4dd4867 --- /dev/null +++ b/latest/api/lib/jquery.layout.js @@ -0,0 +1,5486 @@ +/** + * @preserve jquery.layout 1.3.0 - Release Candidate 30.62 + * $Date: 2012-08-04 08:00:00 (Thu, 23 Aug 2012) $ + * $Rev: 303006 $ + * + * Copyright (c) 2012 + * Fabrizio Balliano (http://www.fabrizioballiano.net) + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.62 + * NOTE: This is a short-term release to patch a couple of bugs. + * These bugs are listed as officially fixed in RC30.7, which will be released shortly. + * + * Docs: http://layout.jquery-dev.net/documentation.html + * Tips: http://layout.jquery-dev.net/tips.html + * Help: http://groups.google.com/group/jquery-ui-layout + */ + +/* JavaDoc Info: http://code.google.com/closure/compiler/docs/js-for-compiler.html + * {!Object} non-nullable type (never NULL) + * {?string} nullable type (sometimes NULL) - default for {Object} + * {number=} optional parameter + * {*} ALL types + */ + +// NOTE: For best readability, view with a fixed-width font and tabs equal to 4-chars + +;(function ($) { + +// alias Math methods - used a lot! +var min = Math.min +, max = Math.max +, round = Math.floor + +, isStr = function (v) { return $.type(v) === "string"; } + +, runPluginCallbacks = function (Instance, a_fn) { + if ($.isArray(a_fn)) + for (var i=0, c=a_fn.length; i
    ').appendTo("body"); + var d = { width: $c.width() - $c[0].clientWidth, height: $c.height() - $c[0].clientHeight }; + $c.remove(); + window.scrollbarWidth = d.width; + window.scrollbarHeight = d.height; + return dim.match(/^(width|height)$/) ? d[dim] : d; + } + + + /** + * Returns hash container 'display' and 'visibility' + * + * @see $.swap() - swaps CSS, runs callback, resets CSS + */ +, showInvisibly: function ($E, force) { + if ($E && $E.length && (force || $E.css('display') === "none")) { // only if not *already hidden* + var s = $E[0].style + // save ONLY the 'style' props because that is what we must restore + , CSS = { display: s.display || '', visibility: s.visibility || '' }; + // show element 'invisibly' so can be measured + $E.css({ display: "block", visibility: "hidden" }); + return CSS; + } + return {}; + } + + /** + * Returns data for setting size of an element (container or a pane). + * + * @see _create(), onWindowResize() for container, plus others for pane + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc + */ +, getElementDimensions: function ($E) { + var + d = {} // dimensions hash + , x = d.css = {} // CSS hash + , i = {} // TEMP insets + , b, p // TEMP border, padding + , N = $.layout.cssNum + , off = $E.offset() + ; + d.offsetLeft = off.left; + d.offsetTop = off.top; + + $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge + b = x["border" + e] = $.layout.borderWidth($E, e); + p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); + i[e] = b + p; // total offset of content from outer side + d["inset"+ e] = p; // eg: insetLeft = paddingLeft + }); + + d.offsetWidth = $E.innerWidth(); // offsetWidth is used in calc when doing manual resize + d.offsetHeight = $E.innerHeight(); // ditto + d.outerWidth = $E.outerWidth(); + d.outerHeight = $E.outerHeight(); + d.innerWidth = max(0, d.outerWidth - i.Left - i.Right); + d.innerHeight = max(0, d.outerHeight - i.Top - i.Bottom); + + x.width = $E.width(); + x.height = $E.height(); + x.top = N($E,"top",true); + x.bottom = N($E,"bottom",true); + x.left = N($E,"left",true); + x.right = N($E,"right",true); + + //d.visible = $E.is(":visible");// && x.width > 0 && x.height > 0; + + return d; + } + +, getElementCSS: function ($E, list) { + var + CSS = {} + , style = $E[0].style + , props = list.split(",") + , sides = "Top,Bottom,Left,Right".split(",") + , attrs = "Color,Style,Width".split(",") + , p, s, a, i, j, k + ; + for (i=0; i < props.length; i++) { + p = props[i]; + if (p.match(/(border|padding|margin)$/)) + for (j=0; j < 4; j++) { + s = sides[j]; + if (p === "border") + for (k=0; k < 3; k++) { + a = attrs[k]; + CSS[p+s+a] = style[p+s+a]; + } + else + CSS[p+s] = style[p+s]; + } + else + CSS[p] = style[p]; + }; + return CSS + } + + /** + * Return the innerWidth for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerWidth of the elem by subtracting padding and borders + */ +, cssWidth: function ($E, outerWidth) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerWidth <= 0) return 0; + + if (!$.layout.browser.boxModel) return outerWidth; + + // strip border and padding from outerWidth to get CSS Width + var b = $.layout.borderWidth + , n = $.layout.cssNum + , W = outerWidth + - b($E, "Left") + - b($E, "Right") + - n($E, "paddingLeft") + - n($E, "paddingRight"); + + return max(0,W); + } + + /** + * Return the innerHeight for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerHeight of the elem by subtracting padding and borders + */ +, cssHeight: function ($E, outerHeight) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerHeight <= 0) return 0; + + if (!$.layout.browser.boxModel) return outerHeight; + + // strip border and padding from outerHeight to get CSS Height + var b = $.layout.borderWidth + , n = $.layout.cssNum + , H = outerHeight + - b($E, "Top") + - b($E, "Bottom") + - n($E, "paddingTop") + - n($E, "paddingBottom"); + + return max(0,H); + } + + /** + * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist + * + * @see Called by many methods + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {string} prop The name of the CSS property, eg: top, width, etc. + * @param {boolean=} [allowAuto=false] true = return 'auto' if that is value; false = return 0 + * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) + */ +, cssNum: function ($E, prop, allowAuto) { + if (!$E.jquery) $E = $($E); + var CSS = $.layout.showInvisibly($E) + , p = $.css($E[0], prop, true) + , v = allowAuto && p=="auto" ? p : (parseInt(p, 10) || 0); + $E.css( CSS ); // RESET + return v; + } + +, borderWidth: function (el, side) { + if (el.jquery) el = el[0]; + var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left + return $.css(el, b+"Style", true) === "none" ? 0 : (parseInt($.css(el, b+"Width", true), 10) || 0); + } + + /** + * Mouse-tracking utility - FUTURE REFERENCE + * + * init: if (!window.mouse) { + * window.mouse = { x: 0, y: 0 }; + * $(document).mousemove( $.layout.trackMouse ); + * } + * + * @param {Object} evt + * +, trackMouse: function (evt) { + window.mouse = { x: evt.clientX, y: evt.clientY }; + } + */ + + /** + * SUBROUTINE for preventPrematureSlideClose option + * + * @param {Object} evt + * @param {Object=} el + */ +, isMouseOverElem: function (evt, el) { + var + $E = $(el || this) + , d = $E.offset() + , T = d.top + , L = d.left + , R = L + $E.outerWidth() + , B = T + $E.outerHeight() + , x = evt.pageX // evt.clientX ? + , y = evt.pageY // evt.clientY ? + ; + // if X & Y are < 0, probably means is over an open SELECT + return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); + } + + /** + * Message/Logging Utility + * + * @example $.layout.msg("My message"); // log text + * @example $.layout.msg("My message", true); // alert text + * @example $.layout.msg({ foo: "bar" }, "Title"); // log hash-data, with custom title + * @example $.layout.msg({ foo: "bar" }, true, "Title", { sort: false }); -OR- + * @example $.layout.msg({ foo: "bar" }, "Title", { sort: false, display: true }); // alert hash-data + * + * @param {(Object|string)} info String message OR Hash/Array + * @param {(Boolean|string|Object)=} [popup=false] True means alert-box - can be skipped + * @param {(Object|string)=} [debugTitle=""] Title for Hash data - can be skipped + * @param {Object=} [debugOpts] Extra options for debug output + */ +, msg: function (info, popup, debugTitle, debugOpts) { + if ($.isPlainObject(info) && window.debugData) { + if (typeof popup === "string") { + debugOpts = debugTitle; + debugTitle = popup; + } + else if (typeof debugTitle === "object") { + debugOpts = debugTitle; + debugTitle = null; + } + var t = debugTitle || "log( )" + , o = $.extend({ sort: false, returnHTML: false, display: false }, debugOpts); + if (popup === true || o.display) + debugData( info, t, o ); + else if (window.console) + console.log(debugData( info, t, o )); + } + else if (popup) + alert(info); + else if (window.console) + console.log(info); + else { + var id = "#layoutLogger" + , $l = $(id); + if (!$l.length) + $l = createLog(); + $l.children("ul").append('
  9. '+ info.replace(/\/g,">") +'
  10. '); + } + + function createLog () { + var pos = $.support.fixedPosition ? 'fixed' : 'absolute' + , $e = $('
    ' + + '
    ' + + 'XLayout console.log
    ' + + '
      ' + + '
      ' + ).appendTo("body"); + $e.css('left', $(window).width() - $e.outerWidth() - 5) + if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); + return $e; + }; + } + +}; + +// DEFAULT OPTIONS +$.layout.defaults = { +/* + * LAYOUT & LAYOUT-CONTAINER OPTIONS + * - none of these options are applicable to individual panes + */ + name: "" // Not required, but useful for buttons and used for the state-cookie +, containerSelector: "" // ONLY used when specifying a childOptions - to find container-element that is NOT directly-nested +, containerClass: "ui-layout-container" // layout-container element +, scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) +, resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event +, resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky +, resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized +, onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific +, onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific +, onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements +, onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized +, onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload +, onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload +, initPanes: true // false = DO NOT initialize the panes onLoad - will init later +, showErrorMessages: true // enables fatal error messages to warn developers of common errors +, showDebugMessages: false // display console-and-alert debug msgs - IF this Layout version _has_ debugging code! +// Changing this zIndex value will cause other zIndex values to automatically change +, zIndex: null // the PANE zIndex - resizers and masks will be +1 +// DO NOT CHANGE the zIndex values below unless you clearly understand their relationships +, zIndexes: { // set _default_ z-index values here... + pane_normal: 0 // normal z-index for panes + , content_mask: 1 // applied to overlays used to mask content INSIDE panes during resizing + , resizer_normal: 2 // normal z-index for resizer-bars + , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' + , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer + , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' + } +, errors: { + pane: "pane" // description of "layout pane element" - used only in error messages + , selector: "selector" // description of "jQuery-selector" - used only in error messages + , addButtonError: "Error Adding Button \n\nInvalid " + , containerMissing: "UI Layout Initialization Error\n\nThe specified layout-container does not exist." + , centerPaneMissing: "UI Layout Initialization Error\n\nThe center-pane element does not exist.\n\nThe center-pane is a required element." + , noContainerHeight: "UI Layout Initialization Warning\n\nThe layout-container \"CONTAINER\" has no height.\n\nTherefore the layout is 0-height and hence 'invisible'!" + , callbackError: "UI Layout Callback Error\n\nThe EVENT callback is not a valid function." + } +/* + * PANE DEFAULT SETTINGS + * - settings under the 'panes' key become the default settings for *all panes* + * - ALL pane-options can also be set specifically for each panes, which will override these 'default values' + */ +, panes: { // default options for 'all panes' - will be overridden by 'per-pane settings' + applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity + , closable: true // pane can open & close + , resizable: true // when open, pane can be resized + , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out + , initClosed: false // true = init pane as 'closed' + , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing + // SELECTORS + //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane + , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! + , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' + , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) + // GENERIC ROOT-CLASSES - for auto-generated classNames + , paneClass: "ui-layout-pane" // Layout Pane + , resizerClass: "ui-layout-resizer" // Resizer Bar + , togglerClass: "ui-layout-toggler" // Toggler Button + , buttonClass: "ui-layout-button" // CUSTOM Buttons - eg: '[ui-layout-button]-toggle/-open/-close/-pin' + // ELEMENT SIZE & SPACING + //, size: 100 // MUST be pane-specific -initial size of pane + , minSize: 0 // when manually resizing a pane + , maxSize: 0 // ditto, 0 = no limit + , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' + , spacing_closed: 6 // ditto - when pane is 'closed' + , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides + , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' + , togglerAlign_open: "center" // top/left, bottom/right, center, OR... + , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right + , togglerContent_open: "" // text or HTML to put INSIDE the toggler + , togglerContent_closed: "" // ditto + // RESIZING OPTIONS + , resizerDblClickToggle: true // + , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes + , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed + , resizerDragOpacity: 1 // option for ui.draggable + //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar + , maskContents: false // true = add DIV-mask over-or-inside this pane so can 'drag' over IFRAMES + , maskObjects: false // true = add IFRAME-mask over-or-inside this pane to cover objects/applets - content-mask will overlay this mask + , maskZindex: null // will override zIndexes.content_mask if specified - not applicable to iframe-panes + , resizingGrid: false // grid size that the resizers will snap-to during resizing, eg: [20,20] + , livePaneResizing: false // true = LIVE Resizing as resizer is dragged + , liveContentResizing: false // true = re-measure header/footer heights as resizer is dragged + , liveResizingTolerance: 1 // how many px change before pane resizes, to control performance + // SLIDING OPTIONS + , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' + , slideTrigger_open: "click" // click, dblclick, mouseenter + , slideTrigger_close: "mouseleave"// click, mouseleave + , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open + , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) + , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? + , preventQuickSlideClose: $.layout.browser.webkit // Chrome triggers slideClosed as it is opening + , preventPrematureSlideClose: false // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + // PANE-SPECIFIC TIPS & MESSAGES + , tips: { + Open: "Open" // eg: "Open Pane" + , Close: "Close" + , Resize: "Resize" + , Slide: "Slide Open" + , Pin: "Pin" + , Unpin: "Un-Pin" + , noRoomToOpen: "Not enough room to show this panel." // alert if user tries to open a pane that cannot + , minSizeWarning: "Panel has reached its minimum size" // displays in browser statusbar + , maxSizeWarning: "Panel has reached its maximum size" // ditto + } + // HOT-KEYS & MISC + , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver + , enableCursorHotkey: true // enabled 'cursor' hotkeys + //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character + , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' + // PANE ANIMATION + // NOTE: fxSss_open, fxSss_close & fxSss_size options (eg: fxName_open) are auto-generated if not passed + , fxName: "slide" // ('none' or blank), slide, drop, scale -- only relevant to 'open' & 'close', NOT 'size' + , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration + , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } + , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation + , animatePaneSizing: false // true = animate resizing after dragging resizer-bar OR sizePane() is called + /* NOTE: Action-specific FX options are auto-generated from the options above if not specifically set: + fxName_open: "slide" // 'Open' pane animation + fnName_close: "slide" // 'Close' pane animation + fxName_size: "slide" // 'Size' pane animation - when animatePaneSizing = true + fxSpeed_open: null + fxSpeed_close: null + fxSpeed_size: null + fxSettings_open: {} + fxSettings_close: {} + fxSettings_size: {} + */ + // CHILD/NESTED LAYOUTS + , childOptions: null // Layout-options for nested/child layout - even {} is valid as options + , initChildLayout: true // true = child layout will be created as soon as _this_ layout completes initialization + , destroyChildLayout: true // true = destroy child-layout if this pane is destroyed + , resizeChildLayout: true // true = trigger child-layout.resizeAll() when this pane is resized + // EVENT TRIGGERING + , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes + , triggerEventsDuringLiveResize: true // true = trigger onresize callback REPEATEDLY if livePaneResizing==true + // PANE CALLBACKS + , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start + , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end + , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start + , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end + , onopen_start: null // CALLBACK when pane STARTS to Open + , onopen_end: null // CALLBACK when pane ENDS being Opened + , onclose_start: null // CALLBACK when pane STARTS to Close + , onclose_end: null // CALLBACK when pane ENDS being Closed + , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** + , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** + , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS + , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS + , onswap_start: null // CALLBACK when pane STARTS to Swap + , onswap_end: null // CALLBACK when pane ENDS being Swapped + , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized + , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized + } +/* + * PANE-SPECIFIC SETTINGS + * - options listed below MUST be specified per-pane - they CANNOT be set under 'panes' + * - all options under the 'panes' key can also be set specifically for any pane + * - most options under the 'panes' key apply only to 'border-panes' - NOT the the center-pane + */ +, north: { + paneSelector: ".ui-layout-north" + , size: "auto" // eg: "auto", "30%", .30, 200 + , resizerCursor: "n-resize" // custom = url(myCursor.cur) + , customHotkey: "" // EITHER a charCode (43) OR a character ("o") + } +, south: { + paneSelector: ".ui-layout-south" + , size: "auto" + , resizerCursor: "s-resize" + , customHotkey: "" + } +, east: { + paneSelector: ".ui-layout-east" + , size: 200 + , resizerCursor: "e-resize" + , customHotkey: "" + } +, west: { + paneSelector: ".ui-layout-west" + , size: 200 + , resizerCursor: "w-resize" + , customHotkey: "" + } +, center: { + paneSelector: ".ui-layout-center" + , minWidth: 0 + , minHeight: 0 + } +}; + +$.layout.optionsMap = { + // layout/global options - NOT pane-options + layout: ("stateManagement,effects,zIndexes,errors," + + "name,zIndex,scrollToBookmarkOnLoad,showErrorMessages," + + "resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay," + + "onresizeall,onresizeall_start,onresizeall_end,onload,onunload").split(",") +// borderPanes: [ ALL options that are NOT specified as 'layout' ] + // default.panes options that apply to the center-pane (most options apply _only_ to border-panes) +, center: ("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad," + + "showOverflowOnHover,maskContents,maskObjects,liveContentResizing," + + "childOptions,initChildLayout,resizeChildLayout,destroyChildLayout," + + "onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(",") + // options that MUST be specifically set 'per-pane' - CANNOT set in the panes (defaults) key +, noDefault: ("paneSelector,resizerCursor,customHotkey").split(",") +}; + +/** + * Processes options passed in converts flat-format data into subkey (JSON) format + * In flat-format, subkeys are _currently_ separated with 2 underscores, like north__optName + * Plugins may also call this method so they can transform their own data + * + * @param {!Object} hash Data/options passed by user - may be a single level or nested levels + * @return {Object} Returns hash of minWidth & minHeight + */ +$.layout.transformData = function (hash) { + var json = { panes: {}, center: {} } // init return object + , data, branch, optKey, keys, key, val, i, c; + + if (typeof hash !== "object") return json; // no options passed + + // convert all 'flat-keys' to 'sub-key' format + for (optKey in hash) { + branch = json; + data = $.layout.optionsMap.layout; + val = hash[ optKey ]; + keys = optKey.split("__"); // eg: west__size or north__fxSettings__duration + c = keys.length - 1; + // convert underscore-delimited to subkeys + for (i=0; i <= c; i++) { + key = keys[i]; + if (i === c) + branch[key] = val; + else if (!branch[key]) + branch[key] = {}; // create the subkey + // recurse to sub-key for next loop - if not done + branch = branch[key]; + } + } + + return json; +}; + +// INTERNAL CONFIG DATA - DO NOT CHANGE THIS! +$.layout.backwardCompatibility = { + // data used by renameOldOptions() + map: { + // OLD Option Name: NEW Option Name + applyDefaultStyles: "applyDemoStyles" + , resizeNestedLayout: "resizeChildLayout" + , resizeWhileDragging: "livePaneResizing" + , resizeContentWhileDragging: "liveContentResizing" + , triggerEventsWhileDragging: "triggerEventsDuringLiveResize" + , maskIframesOnResize: "maskContents" + , useStateCookie: "stateManagement.enabled" + , "cookie.autoLoad": "stateManagement.autoLoad" + , "cookie.autoSave": "stateManagement.autoSave" + , "cookie.keys": "stateManagement.stateKeys" + , "cookie.name": "stateManagement.cookie.name" + , "cookie.domain": "stateManagement.cookie.domain" + , "cookie.path": "stateManagement.cookie.path" + , "cookie.expires": "stateManagement.cookie.expires" + , "cookie.secure": "stateManagement.cookie.secure" + // OLD Language options + , noRoomToOpenTip: "tips.noRoomToOpen" + , togglerTip_open: "tips.Close" // open = Close + , togglerTip_closed: "tips.Open" // closed = Open + , resizerTip: "tips.Resize" + , sliderTip: "tips.Slide" + } + +/** +* @param {Object} opts +*/ +, renameOptions: function (opts) { + var map = $.layout.backwardCompatibility.map + , oldData, newData, value + ; + for (var itemPath in map) { + oldData = getBranch( itemPath ); + value = oldData.branch[ oldData.key ]; + if (value !== undefined) { + newData = getBranch( map[itemPath], true ); + newData.branch[ newData.key ] = value; + delete oldData.branch[ oldData.key ]; + } + } + + /** + * @param {string} path + * @param {boolean=} [create=false] Create path if does not exist + */ + function getBranch (path, create) { + var a = path.split(".") // split keys into array + , c = a.length - 1 + , D = { branch: opts, key: a[c] } // init branch at top & set key (last item) + , i = 0, k, undef; + for (; i 0) { + if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + // make hidden, then visible to 'refresh' display after animation + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerHeight + * @param {boolean=} [autoHide=false] + */ +, setOuterHeight = function (el, outerHeight, autoHide) { + var $E = el, h; + if (isStr(el)) $E = $Ps[el]; // west + else if (!el.jquery) $E = $(el); + h = cssH($E, outerHeight); + $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent + if (h > 0 && $E.innerWidth() > 0) { + if (autoHide && $E.data('autoHidden')) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerSize + * @param {boolean=} [autoHide=false] + */ +, setOuterSize = function (el, outerSize, autoHide) { + if (_c[pane].dir=="horz") // pane = north or south + setOuterHeight(el, outerSize, autoHide); + else // pane = east or west + setOuterWidth(el, outerSize, autoHide); + } + + + /** + * Converts any 'size' params to a pixel/integer size, if not already + * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated + * + /** + * @param {string} pane + * @param {(string|number)=} size + * @param {string=} [dir] + * @return {number} + */ +, _parseSize = function (pane, size, dir) { + if (!dir) dir = _c[pane].dir; + + if (isStr(size) && size.match(/%/)) + size = (size === '100%') ? -1 : parseInt(size, 10) / 100; // convert % to decimal + + if (size === 0) + return 0; + else if (size >= 1) + return parseInt(size, 10); + + var o = options, avail = 0; + if (dir=="horz") // north or south or center.minHeight + avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); + else if (dir=="vert") // east or west or center.minWidth + avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); + + if (size === -1) // -1 == 100% + return avail; + else if (size > 0) // percentage, eg: .25 + return round(avail * size); + else if (pane=="center") + return 0; + else { // size < 0 || size=='auto' || size==Missing || size==Invalid + // auto-size the pane + var dim = (dir === "horz" ? "height" : "width") + , $P = $Ps[pane] + , $C = dim === 'height' ? $Cs[pane] : false + , vis = $.layout.showInvisibly($P) // show pane invisibly if hidden + , szP = $P.css(dim) // SAVE current pane size + , szC = $C ? $C.css(dim) : 0 // SAVE current content size + ; + $P.css(dim, "auto"); + if ($C) $C.css(dim, "auto"); + size = (dim === "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE + $P.css(dim, szP).css(vis); // RESET size & visibility + if ($C) $C.css(dim, szC); + return size; + } + } + + /** + * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added + * + * @param {(string|!Object)} pane + * @param {boolean=} [inclSpace=false] + * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes + */ +, getPaneSize = function (pane, inclSpace) { + var + $P = $Ps[pane] + , o = options[pane] + , s = state[pane] + , oSp = (inclSpace ? o.spacing_open : 0) + , cSp = (inclSpace ? o.spacing_closed : 0) + ; + if (!$P || s.isHidden) + return 0; + else if (s.isClosed || (s.isSliding && inclSpace)) + return cSp; + else if (_c[pane].dir === "horz") + return $P.outerHeight() + oSp; + else // dir === "vert" + return $P.outerWidth() + oSp; + } + + /** + * Calculate min/max pane dimensions and limits for resizing + * + * @param {string} pane + * @param {boolean=} [slide=false] + */ +, setSizeLimits = function (pane, slide) { + if (!isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , side = c.side.toLowerCase() + , type = c.sizeType.toLowerCase() + , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param + , $P = $Ps[pane] + , paneSpacing = o.spacing_open + // measure the pane on the *opposite side* from this pane + , altPane = _c.oppositeEdge[pane] + , altS = state[altPane] + , $altP = $Ps[altPane] + , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) + , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) + // limitSize prevents this pane from 'overlapping' opposite pane + , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) + , minCenterDims = cssMinDims("center") + , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) + // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them + , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) + , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) + , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) + , r = s.resizerPosition = {} // used to set resizing limits + , top = sC.insetTop + , left = sC.insetLeft + , W = sC.innerWidth + , H = sC.innerHeight + , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east + ; + switch (pane) { + case "north": r.min = top + minSize; + r.max = top + maxSize; + break; + case "west": r.min = left + minSize; + r.max = left + maxSize; + break; + case "south": r.min = top + H - maxSize - rW; + r.max = top + H - minSize - rW; + break; + case "east": r.min = left + W - maxSize - rW; + r.max = left + W - minSize - rW; + break; + }; + } + + /** + * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes + * + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height + */ +, calcNewCenterPaneDims = function () { + var d = { + top: getPaneSize("north", true) // true = include 'spacing' value for pane + , bottom: getPaneSize("south", true) + , left: getPaneSize("west", true) + , right: getPaneSize("east", true) + , width: 0 + , height: 0 + }; + + // NOTE: sC = state.container + // calc center-pane outer dimensions + d.width = sC.innerWidth - d.left - d.right; // outerWidth + d.height = sC.innerHeight - d.bottom - d.top; // outerHeight + // add the 'container border/padding' to get final positions relative to the container + d.top += sC.insetTop; + d.bottom += sC.insetBottom; + d.left += sC.insetLeft; + d.right += sC.insetRight; + + return d; + } + + + /** + * @param {!Object} el + * @param {boolean=} [allStates=false] + */ +, getHoverClasses = function (el, allStates) { + var + $El = $(el) + , type = $El.data("layoutRole") + , pane = $El.data("layoutEdge") + , o = options[pane] + , root = o[type +"Class"] + , _pane = "-"+ pane // eg: "-west" + , _open = "-open" + , _closed = "-closed" + , _slide = "-sliding" + , _hover = "-hover " // NOTE the trailing space + , _state = $El.hasClass(root+_closed) ? _closed : _open + , _alt = _state === _closed ? _open : _closed + , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) + ; + if (allStates) // when 'removing' classes, also remove alternate-state classes + classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); + + if (type=="resizer" && $El.hasClass(root+_slide)) + classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); + + return $.trim(classes); + } +, addHover = function (evt, el) { + var $E = $(el || this); + if (evt && $E.data("layoutRole") === "toggler") + evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar + $E.addClass( getHoverClasses($E) ); + } +, removeHover = function (evt, el) { + var $E = $(el || this); + $E.removeClass( getHoverClasses($E, true) ); + } + +, onResizerEnter = function (evt) { // ALSO called by toggler.mouseenter + if ($.fn.disableSelection) + $("body").disableSelection(); + } +, onResizerLeave = function (evt, el) { + var + e = el || this // el is only passed when called by the timer + , pane = $(e).data("layoutEdge") + , name = pane +"ResizerLeave" + ; + timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set + timer.clear(name); // cancel enableSelection timer - may re/set below + // this method calls itself on a timer because it needs to allow + // enough time for dragging to kick-in and set the isResizing flag + // dragging has a 100ms delay set, so this delay must be >100 + if (!el) // 1st call - mouseleave event + timer.set(name, function(){ onResizerLeave(evt, e); }, 200); + // if user is resizing, then dragStop will enableSelection(), so can skip it here + else if (!state[pane].isResizing && $.fn.enableSelection) // 2nd call - by timer + $("body").enableSelection(); + } + +/* + * ########################### + * INITIALIZATION METHODS + * ########################### + */ + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see none - triggered onInit + * @return mixed true = fully initialized | false = panes not initialized (yet) | 'cancel' = abort + */ +, _create = function () { + // initialize config/options + initOptions(); + var o = options; + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // init plugins for this layout, if there are any (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onCreate ); + + // options & state have been initialized, so now run beforeLoad callback + // onload will CANCEL layout creation if it returns false + if (false === _runCallbacks("onload_start")) + return 'cancel'; + + // initialize the container element + _initContainer(); + + // bind hotkey function - keyDown - if required + initHotkeys(); + + // bind window.onunload + $(window).bind("unload."+ sID, unload); + + // init plugins for this layout, if there are any (eg: customButtons) + runPluginCallbacks( Instance, $.layout.onLoad ); + + // if layout elements are hidden, then layout WILL NOT complete initialization! + // initLayoutElements will set initialized=true and run the onload callback IF successful + if (o.initPanes) _initLayoutElements(); + + delete state.creatingLayout; + + return state.initialized; + } + + /** + * Initialize the layout IF not already + * + * @see All methods in Instance run this test + * @return boolean true = layoutElements have been initialized | false = panes are not initialized (yet) + */ +, isInitialized = function () { + if (state.initialized || state.creatingLayout) return true; // already initialized + else return _initLayoutElements(); // try to init panes NOW + } + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see _create() & isInitialized + * @return An object pointer to the instance created + */ +, _initLayoutElements = function (retry) { + // initialize config/options + var o = options; + + // CANNOT init panes inside a hidden container! + if (!$N.is(":visible")) { + // handle Chrome bug where popup window 'has no height' + // if layout is BODY element, try again in 50ms + // SEE: http://layout.jquery-dev.net/samples/test_popup_window.html + if ( !retry && browser.webkit && $N[0].tagName === "BODY" ) + setTimeout(function(){ _initLayoutElements(true); }, 50); + return false; + } + + // a center pane is required, so make sure it exists + if (!getPane("center").length) { + return _log( o.errors.centerPaneMissing ); + } + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // update Container dims + $.extend(sC, elDims( $N )); + + // initialize all layout elements + initPanes(); // size & position panes - calls initHandles() - which calls initResizable() + + if (o.scrollToBookmarkOnLoad) { + var l = self.location; + if (l.hash) l.replace( l.hash ); // scrollTo Bookmark + } + + // check to see if this layout 'nested' inside a pane + if (Instance.hasParentLayout) + o.resizeWithWindow = false; + // bind resizeAll() for 'this layout instance' to window.resize event + else if (o.resizeWithWindow) + $(window).bind("resize."+ sID, windowResize); + + delete state.creatingLayout; + state.initialized = true; + + // init plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onReady ); + + // now run the onload callback, if exists + _runCallbacks("onload_end"); + + return true; // elements initialized successfully + } + + /** + * Initialize nested layouts - called when _initLayoutElements completes + * + * NOT CURRENTLY USED + * + * @see _initLayoutElements + * @return An object pointer to the instance created + */ +, _initChildLayouts = function () { + $.each(_c.allPanes, function (idx, pane) { + if (options[pane].initChildLayout) + createChildLayout( pane ); + }); + } + + /** + * Initialize nested layouts for a specific pane - can optionally pass layout-options + * + * @see _initChildLayouts + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {Object=} [opts] Layout-options - if passed, will OVERRRIDE options[pane].childOptions + * @return An object pointer to the layout instance created - or null + */ +, createChildLayout = function (evt_or_pane, opts) { + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , C = children + ; + if ($P) { + var $C = $Cs[pane] + , o = opts || options[pane].childOptions + , d = "layout" + // determine which element is supposed to be the 'child container' + // if pane has a 'containerSelector' OR a 'content-div', use those instead of the pane + , $Cont = o.containerSelector ? $P.find( o.containerSelector ) : ($C || $P) + , containerFound = $Cont.length + // see if a child-layout ALREADY exists on this element + , child = containerFound ? (C[pane] = $Cont.data(d) || null) : null + ; + // if no layout exists, but childOptions are set, try to create the layout now + if (!child && containerFound && o) + child = C[pane] = $Cont.eq(0).layout(o) || null; + if (child) + child.hasParentLayout = true; // set parent-flag in child + } + Instance[pane].child = C[pane]; // ALWAYS set pane-object pointer, even if null + } + +, windowResize = function () { + var delay = Number(options.resizeWithWindowDelay); + if (delay < 10) delay = 100; // MUST have a delay! + // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway + timer.clear("winResize"); // if already running + timer.set("winResize", function(){ + timer.clear("winResize"); + timer.clear("winResizeRepeater"); + var dims = elDims( $N ); + // only trigger resizeAll() if container has changed size + if (dims.innerWidth !== sC.innerWidth || dims.innerHeight !== sC.innerHeight) + resizeAll(); + }, delay); + // ALSO set fixed-delay timer, if not already running + if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); + } + +, setWindowResizeRepeater = function () { + var delay = Number(options.resizeWithWindowMaxDelay); + if (delay > 0) + timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); + } + +, unload = function () { + var o = options; + + _runCallbacks("onunload_start"); + + // trigger plugin callabacks for this layout (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onUnload ); + + _runCallbacks("onunload_end"); + } + + /** + * Validate and initialize container CSS and events + * + * @see _create() + */ +, _initContainer = function () { + var + N = $N[0] + , tag = sC.tagName = N.tagName + , id = sC.id = N.id + , cls = sC.className = N.className + , o = options + , name = o.name + , fullPage= (tag === "BODY") + , props = "overflow,position,margin,padding,border" + , css = "layoutCSS" + , CSS = {} + , hid = "hidden" // used A LOT! + // see if this container is a 'pane' inside an outer-layout + , parent = $N.data("parentLayout") // parent-layout Instance + , pane = $N.data("layoutEdge") // pane-name in parent-layout + , isChild = parent && pane + ; + // sC -> state.container + sC.selector = $N.selector.split(".slice")[0]; + sC.ref = (o.name ? o.name +' layout / ' : '') + tag + (id ? "#"+id : cls ? '.['+cls+']' : ''); // used in messages + + $N .data({ + layout: Instance + , layoutContainer: sID // FLAG to indicate this is a layout-container - contains unique internal ID + }) + .addClass(o.containerClass) + ; + var layoutMethods = { + destroy: '' + , initPanes: '' + , resizeAll: 'resizeAll' + , resize: 'resizeAll' + }; + // loop hash and bind all methods - include layoutID namespacing + for (name in layoutMethods) { + $N.bind("layout"+ name.toLowerCase() +"."+ sID, Instance[ layoutMethods[name] || name ]); + } + + // if this container is another layout's 'pane', then set child/parent pointers + if (isChild) { + // update parent flag + Instance.hasParentLayout = true; + // set pointers to THIS child-layout (Instance) in parent-layout + // NOTE: parent.PANE.child is an ALIAS to parent.children.PANE + parent[pane].child = parent.children[pane] = $N.data("layout"); + } + + // SAVE original container CSS for use in destroy() + if (!$N.data(css)) { + // handle props like overflow different for BODY & HTML - has 'system default' values + if (fullPage) { + CSS = $.extend( elCSS($N, props), { + height: $N.css("height") + , overflow: $N.css("overflow") + , overflowX: $N.css("overflowX") + , overflowY: $N.css("overflowY") + }); + // ALSO SAVE CSS + var $H = $("html"); + $H.data(css, { + height: "auto" // FF would return a fixed px-size! + , overflow: $H.css("overflow") + , overflowX: $H.css("overflowX") + , overflowY: $H.css("overflowY") + }); + } + else // handle props normally for non-body elements + CSS = elCSS($N, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY"); + + $N.data(css, CSS); + } + + try { // format html/body if this is a full page layout + if (fullPage) { + $("html").css({ + height: "100%" + , overflow: hid + , overflowX: hid + , overflowY: hid + }); + $("body").css({ + position: "relative" + , height: "100%" + , overflow: hid + , overflowX: hid + , overflowY: hid + , margin: 0 + , padding: 0 // TODO: test whether body-padding could be handled? + , border: "none" // a body-border creates problems because it cannot be measured! + }); + + // set current layout-container dimensions + $.extend(sC, elDims( $N )); + } + else { // set required CSS for overflow and position + // ENSURE container will not 'scroll' + CSS = { overflow: hid, overflowX: hid, overflowY: hid } + var + p = $N.css("position") + , h = $N.css("height") + ; + // if this is a NESTED layout, then container/outer-pane ALREADY has position and height + if (!isChild) { + if (!p || !p.match(/fixed|absolute|relative/)) + CSS.position = "relative"; // container MUST have a 'position' + /* + if (!h || h=="auto") + CSS.height = "100%"; // container MUST have a 'height' + */ + } + $N.css( CSS ); + + // set current layout-container dimensions + if ( $N.is(":visible") ) { + $.extend(sC, elDims( $N )); + if (sC.innerHeight < 1) + _log( o.errors.noContainerHeight.replace(/CONTAINER/, sC.ref) ); + } + } + } catch (ex) {} + } + + /** + * Bind layout hotkeys - if options enabled + * + * @see _create() and addPane() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHotkeys = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + // bind keyDown to capture hotkeys, if option enabled for ANY pane + $.each(panes, function (i, pane) { + var o = options[pane]; + if (o.enableCursorHotkey || o.customHotkey) { + $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE + return false; // BREAK - binding was done + } + }); + } + + /** + * Build final OPTIONS data + * + * @see _create() + */ +, initOptions = function () { + var data, d, pane, key, val, i, c, o; + + // reprocess user's layout-options to have correct options sub-key structure + opts = $.layout.transformData( opts ); // panes = default subkey + + // auto-rename old options for backward compatibility + opts = $.layout.backwardCompatibility.renameAllOptions( opts ); + + // if user-options has 'panes' key (pane-defaults), clean it... + if (!$.isEmptyObject(opts.panes)) { + // REMOVE any pane-defaults that MUST be set per-pane + data = $.layout.optionsMap.noDefault; + for (i=0, c=data.length; i 0) { + z.pane_normal = zo; + z.content_mask = max(zo+1, z.content_mask); // MIN = +1 + z.resizer_normal = max(zo+2, z.resizer_normal); // MIN = +2 + } + + // DELETE 'panes' key now that we are done - values were copied to EACH pane + delete options.panes; + + + function createFxOptions ( pane ) { + var o = options[pane] + , d = options.panes; + // ensure fxSettings key to avoid errors + if (!o.fxSettings) o.fxSettings = {}; + if (!d.fxSettings) d.fxSettings = {}; + + $.each(["_open","_close","_size"], function (i,n) { + var + sName = "fxName"+ n + , sSpeed = "fxSpeed"+ n + , sSettings = "fxSettings"+ n + // recalculate fxName according to specificity rules + , fxName = o[sName] = + o[sName] // options.west.fxName_open + || d[sName] // options.panes.fxName_open + || o.fxName // options.west.fxName + || d.fxName // options.panes.fxName + || "none" // MEANS $.layout.defaults.panes.fxName == "" || false || null || 0 + ; + // validate fxName to ensure is valid effect - MUST have effect-config data in options.effects + if (fxName === "none" || !$.effects || !$.effects[fxName] || !options.effects[fxName]) + fxName = o[sName] = "none"; // effect not loaded OR unrecognized fxName + + // set vars for effects subkeys to simplify logic + var fx = options.effects[fxName] || {} // effects.slide + , fx_all = fx.all || null // effects.slide.all + , fx_pane = fx[pane] || null // effects.slide.west + ; + // create fxSpeed[_open|_close|_size] + o[sSpeed] = + o[sSpeed] // options.west.fxSpeed_open + || d[sSpeed] // options.west.fxSpeed_open + || o.fxSpeed // options.west.fxSpeed + || d.fxSpeed // options.panes.fxSpeed + || null // DEFAULT - let fxSetting.duration control speed + ; + // create fxSettings[_open|_close|_size] + o[sSettings] = $.extend( + true + , {} + , fx_all // effects.slide.all + , fx_pane // effects.slide.west + , d.fxSettings // options.panes.fxSettings + , o.fxSettings // options.west.fxSettings + , d[sSettings] // options.panes.fxSettings_open + , o[sSettings] // options.west.fxSettings_open + ); + }); + + // DONE creating action-specific-settings for this pane, + // so DELETE generic options - are no longer meaningful + delete o.fxName; + delete o.fxSpeed; + delete o.fxSettings; + } + } + + /** + * Initialize module objects, styling, size and position for all panes + * + * @see _initElements() + * @param {string} pane The pane to process + */ +, getPane = function (pane) { + var sel = options[pane].paneSelector + if (sel.substr(0,1)==="#") // ID selector + // NOTE: elements selected 'by ID' DO NOT have to be 'children' + return $N.find(sel).eq(0); + else { // class or other selector + var $P = $N.children(sel).eq(0); + // look for the pane nested inside a 'form' element + return $P.length ? $P : $N.children("form:first").children(sel).eq(0); + } + } + +, initPanes = function (evt) { + // stopPropagation if called by trigger("layoutinitpanes") - use evtPane utility + evtPane(evt); + + // NOTE: do north & south FIRST so we can measure their height - do center LAST + $.each(_c.allPanes, function (idx, pane) { + addPane( pane, true ); + }); + + // init the pane-handles NOW in case we have to hide or close the pane below + initHandles(); + + // now that all panes have been initialized and initially-sized, + // make sure there is really enough space available for each pane + $.each(_c.borderPanes, function (i, pane) { + if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN + setSizeLimits(pane); + makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() + } + }); + // size center-pane AGAIN in case we 'closed' a border-pane in loop above + sizeMidPanes("center"); + + // Chrome/Webkit sometimes fires callbacks BEFORE it completes resizing! + // Before RC30.3, there was a 10ms delay here, but that caused layout + // to load asynchrously, which is BAD, so try skipping delay for now + + // process pane contents and callbacks, and init/resize child-layout if exists + $.each(_c.allPanes, function (i, pane) { + var o = options[pane]; + if ($Ps[pane]) { + if (state[pane].isVisible) { // pane is OPEN + sizeContent(pane); + // trigger pane.onResize if triggerEventsOnLoad = true + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildLayout(pane); + } + // init childLayout - even if pane is not visible + if (o.initChildLayout && o.childOptions) + createChildLayout(pane); + } + }); + } + + /** + * Add a pane to the layout - subroutine of initPanes() + * + * @see initPanes() + * @param {string} pane The pane to process + * @param {boolean=} [force=false] Size content after init + */ +, addPane = function (pane, force) { + if (!force && !isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , fx = s.fx + , dir = c.dir + , spacing = o.spacing_open || 0 + , isCenter = (pane === "center") + , CSS = {} + , $P = $Ps[pane] + , size, minSize, maxSize + ; + // if pane-pointer already exists, remove the old one first + if ($P) + removePane( pane, false, true, false ); + else + $Cs[pane] = false; // init + + $P = $Ps[pane] = getPane(pane); + if (!$P.length) { + $Ps[pane] = false; // logic + return; + } + + // SAVE original Pane CSS + if (!$P.data("layoutCSS")) { + var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; + $P.data("layoutCSS", elCSS($P, props)); + } + + // create alias for pane data in Instance - initHandles will add more + Instance[pane] = { name: pane, pane: $Ps[pane], content: $Cs[pane], options: options[pane], state: state[pane], child: children[pane] }; + + // add classes, attributes & events + $P .data({ + parentLayout: Instance // pointer to Layout Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "pane" + }) + .css(c.cssReq).css("zIndex", options.zIndexes.pane_normal) + .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles + .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' + .bind("mouseenter."+ sID, addHover ) + .bind("mouseleave."+ sID, removeHover ) + ; + var paneMethods = { + hide: '' + , show: '' + , toggle: '' + , close: '' + , open: '' + , slideOpen: '' + , slideClose: '' + , slideToggle: '' + , size: 'sizePane' + , sizePane: 'sizePane' + , sizeContent: '' + , sizeHandles: '' + , enableClosable: '' + , disableClosable: '' + , enableSlideable: '' + , disableSlideable: '' + , enableResizable: '' + , disableResizable: '' + , swapPanes: 'swapPanes' + , swap: 'swapPanes' + , move: 'swapPanes' + , removePane: 'removePane' + , remove: 'removePane' + , createChildLayout: '' + , resizeChildLayout: '' + , resizeAll: 'resizeAll' + , resizeLayout: 'resizeAll' + } + , name; + // loop hash and bind all methods - include layoutID namespacing + for (name in paneMethods) { + $P.bind("layoutpane"+ name.toLowerCase() +"."+ sID, Instance[ paneMethods[name] || name ]); + } + + // see if this pane has a 'scrolling-content element' + initContent(pane, false); // false = do NOT sizeContent() - called later + + if (!isCenter) { + // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) + // if o.size is auto or not valid, then MEASURE the pane and use that as its 'size' + size = s.size = _parseSize(pane, o.size); + minSize = _parseSize(pane,o.minSize) || 1; + maxSize = _parseSize(pane,o.maxSize) || 100000; + if (size > 0) size = max(min(size, maxSize), minSize); + + // state for border-panes + s.isClosed = false; // true = pane is closed + s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes + s.isResizing= false; // true = pane is in process of being resized + s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! + + // array for 'pin buttons' whose classNames are auto-updated on pane-open/-close + if (!s.pins) s.pins = []; + } + // states common to ALL panes + s.tagName = $P[0].tagName; + s.edge = pane; // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) + s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically + s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic + + // set css-position to account for container borders & padding + switch (pane) { + case "north": CSS.top = sC.insetTop; + CSS.left = sC.insetLeft; + CSS.right = sC.insetRight; + break; + case "south": CSS.bottom = sC.insetBottom; + CSS.left = sC.insetLeft; + CSS.right = sC.insetRight; + break; + case "west": CSS.left = sC.insetLeft; // top, bottom & height set by sizeMidPanes() + break; + case "east": CSS.right = sC.insetRight; // ditto + break; + case "center": // top, left, width & height set by sizeMidPanes() + } + + if (dir === "horz") // north or south pane + CSS.height = cssH($P, size); + else if (dir === "vert") // east or west pane + CSS.width = cssW($P, size); + //else if (isCenter) {} + + $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes + if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback + + // close or hide the pane if specified in settings + if (o.initClosed && o.closable && !o.initHidden) + close(pane, true, true); // true, true = force, noAnimation + else if (o.initHidden || o.initClosed) + hide(pane); // will be completely invisible - no resizer or spacing + else if (!s.noRoom) + // make the pane visible - in case was initially hidden + $P.css("display","block"); + // ELSE setAsOpen() - called later by initHandles() + + // RESET visibility now - pane will appear IF display:block + $P.css("visibility","visible"); + + // check option for auto-handling of pop-ups & drop-downs + if (o.showOverflowOnHover) + $P.hover( allowOverflow, resetOverflow ); + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + initHandles( pane ); + initHotkeys( pane ); + resizeAll(); // will sizeContent if pane is visible + if (s.isVisible) { // pane is OPEN + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildLayout(pane); // a previously existing childLayout + } + if (o.initChildLayout && o.childOptions) + createChildLayout(pane); + } + } + + /** + * Initialize module objects, styling, size and position for all resize bars and toggler buttons + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHandles = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane]; + $Rs[pane] = false; // INIT + $Ts[pane] = false; + if (!$P) return; // pane does not exist - skip + + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , paneId = o.paneSelector.substr(0,1) === "#" ? o.paneSelector.substr(1) : "" + , rClass = o.resizerClass + , tClass = o.togglerClass + , side = c.side.toLowerCase() + , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) + , _pane = "-"+ pane // used for classNames + , _state = (s.isVisible ? "-open" : "-closed") // used for classNames + , I = Instance[pane] + // INIT RESIZER BAR + , $R = I.resizer = $Rs[pane] = $("
      ") + // INIT TOGGLER BUTTON + , $T = I.toggler = (o.closable ? $Ts[pane] = $("
      ") : false) + ; + + //if (s.isVisible && o.resizable) ... handled by initResizable + if (!s.isVisible && o.slidable) + $R.attr("title", o.tips.Slide).css("cursor", o.sliderCursor); + + $R // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" + .attr("id", paneId ? paneId +"-resizer" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "resizer" + }) + .css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal) + .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles + .addClass(rClass +" "+ rClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if resizing is not enabled - handle with CSS instead + .hover(onResizerEnter, onResizerLeave) // ALWAYS NEED resizer.mouseleave to balance toggler.mouseenter + .appendTo($N) // append DIV to container + ; + + if ($T) { + $T // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" + .attr("id", paneId ? paneId +"-toggler" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "toggler" + }) + .css(_c.togglers.cssReq) // add base/required styles + .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles + .addClass(tClass +" "+ tClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if toggling is not enabled - handle with CSS instead + .bind("mouseenter", onResizerEnter) // NEED toggler.mouseenter because mouseenter MAY NOT fire on resizer + .appendTo($R) // append SPAN to resizer DIV + ; + // ADD INNER-SPANS TO TOGGLER + if (o.togglerContent_open) // ui-layout-open + $(""+ o.togglerContent_open +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .data("layoutRole", "togglerContent") + .data("layoutEdge", pane) + .addClass("content content-open") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! + ; + if (o.togglerContent_closed) // ui-layout-closed + $(""+ o.togglerContent_closed +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .addClass("content content-closed") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! + ; + // ADD TOGGLER.click/.hover + enableClosable(pane); + } + + // add Draggable events + initResizable(pane); + + // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" + if (s.isVisible) + setAsOpen(pane); // onOpen will be called, but NOT onResize + else { + setAsClosed(pane); // onClose will be called + bindStartSlidingEvent(pane, true); // will enable events IF option is set + } + + }); + + // SET ALL HANDLE DIMENSIONS + sizeHandles(); + } + + + /** + * Initialize scrolling ui-layout-content div - if exists + * + * @see initPane() - or externally after an Ajax injection + * @param {string} [pane] The pane to process + * @param {boolean=} [resize=true] Size content after init + */ +, initContent = function (pane, resize) { + if (!isInitialized()) return; + var + o = options[pane] + , sel = o.contentSelector + , I = Instance[pane] + , $P = $Ps[pane] + , $C + ; + if (sel) $C = I.content = $Cs[pane] = (o.findNestedContent) + ? $P.find(sel).eq(0) // match 1-element only + : $P.children(sel).eq(0) + ; + if ($C && $C.length) { + $C.data("layoutRole", "content"); + // SAVE original Pane CSS + if (!$C.data("layoutCSS")) + $C.data("layoutCSS", elCSS($C, "height")); + $C.css( _c.content.cssReq ); + if (o.applyDemoStyles) { + $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div + $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane + } + state[pane].content = {}; // init content state + if (resize !== false) sizeContent(pane); + // sizeContent() is called AFTER init of all elements + } + else + I.content = $Cs[pane] = false; + } + + + /** + * Add resize-bars to all panes that specify it in options + * -dependancy: $.fn.resizable - will skip if not found + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initResizable = function (panes) { + var draggingAvailable = $.layout.plugins.draggable + , side // set in start() + ; + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (idx, pane) { + var o = options[pane]; + if (!draggingAvailable || !$Ps[pane] || !o.resizable) { + o.resizable = false; + return true; // skip to next + } + + var s = state[pane] + , z = options.zIndexes + , c = _c[pane] + , side = c.dir=="horz" ? "top" : "left" + , opEdge = _c.oppositeEdge[pane] + , masks = pane +",center,"+ opEdge + (c.dir=="horz" ? ",west,east" : "") + , $P = $Ps[pane] + , $R = $Rs[pane] + , base = o.resizerClass + , lastPos = 0 // used when live-resizing + , r, live // set in start because may change + // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process + , resizerClass = base+"-drag" // resizer-drag + , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag + // 'helper' class is applied to the CLONED resizer-bar while it is being dragged + , helperClass = base+"-dragging" // resizer-dragging + , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging + , helperLimitClass = base+"-dragging-limit" // resizer-drag + , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag + , helperClassesSet = false // logic var + ; + + if (!s.isClosed) + $R.attr("title", o.tips.Resize) + .css("cursor", o.resizerCursor); // n-resize, s-resize, etc + + $R.draggable({ + containment: $N[0] // limit resizing to layout container + , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis + , delay: 0 + , distance: 1 + , grid: o.resizingGrid + // basic format for helper - style it using class: .ui-draggable-dragging + , helper: "clone" + , opacity: o.resizerDragOpacity + , addClasses: false // avoid ui-state-disabled class when disabled + //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed + , zIndex: z.resizer_drag + + , start: function (e, ui) { + // REFRESH options & state pointers in case we used swapPanes + o = options[pane]; + s = state[pane]; + // re-read options + live = o.livePaneResizing; + + // ondrag_start callback - will CANCEL hide if returns false + // TODO: dragging CANNOT be cancelled like this, so see if there is a way? + if (false === _runCallbacks("ondrag_start", pane)) return false; + + s.isResizing = true; // prevent pane from closing while resizing + timer.clear(pane+"_closeSlider"); // just in case already triggered + + // SET RESIZER LIMITS - used in drag() + setSizeLimits(pane); // update pane/resizer state + r = s.resizerPosition; + lastPos = ui.position[ side ] + + $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes + helperClassesSet = false; // reset logic var - see drag() + + // DISABLE TEXT SELECTION (probably already done by resizer.mouseOver) + $('body').disableSelection(); + + // MASK PANES CONTAINING IFRAMES, APPLETS OR OTHER TROUBLESOME ELEMENTS + showMasks( masks ); + } + + , drag: function (e, ui) { + if (!helperClassesSet) { // can only add classes after clone has been added to the DOM + //$(".ui-draggable-dragging") + ui.helper + .addClass( helperClass +" "+ helperPaneClass ) // add helper classes + .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue + .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar + ; + helperClassesSet = true; + // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! + if (s.isSliding) $Ps[pane].css("zIndex", z.pane_sliding); + } + // CONTAIN RESIZER-BAR TO RESIZING LIMITS + var limit = 0; + if (ui.position[side] < r.min) { + ui.position[side] = r.min; + limit = -1; + } + else if (ui.position[side] > r.max) { + ui.position[side] = r.max; + limit = 1; + } + // ADD/REMOVE dragging-limit CLASS + if (limit) { + ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit + window.defaultStatus = (limit>0 && pane.match(/(north|west)/)) || (limit<0 && pane.match(/(south|east)/)) ? o.tips.maxSizeWarning : o.tips.minSizeWarning; + } + else { + ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit + window.defaultStatus = ""; + } + // DYNAMICALLY RESIZE PANES IF OPTION ENABLED + // won't trigger unless resizer has actually moved! + if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { + lastPos = ui.position[side]; + resizePanes(e, ui, pane) + } + } + + , stop: function (e, ui) { + $('body').enableSelection(); // RE-ENABLE TEXT SELECTION + window.defaultStatus = ""; // clear 'resizing limit' message from statusbar + $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer + s.isResizing = false; + resizePanes(e, ui, pane, true, masks); // true = resizingDone + } + + }); + }); + + /** + * resizePanes + * + * Sub-routine called from stop() - and drag() if livePaneResizing + * + * @param {!Object} evt + * @param {!Object} ui + * @param {string} pane + * @param {boolean=} [resizingDone=false] + */ + var resizePanes = function (evt, ui, pane, resizingDone, masks) { + var dragPos = ui.position + , c = _c[pane] + , o = options[pane] + , s = state[pane] + , resizerPos + ; + switch (pane) { + case "north": resizerPos = dragPos.top; break; + case "west": resizerPos = dragPos.left; break; + case "south": resizerPos = sC.offsetHeight - dragPos.top - o.spacing_open; break; + case "east": resizerPos = sC.offsetWidth - dragPos.left - o.spacing_open; break; + }; + // remove container margin from resizer position to get the pane size + var newSize = resizerPos - sC["inset"+ c.side]; + + // Disable OR Resize Mask(s) created in drag.start + if (!resizingDone) { + // ensure we meet liveResizingTolerance criteria + if (Math.abs(newSize - s.size) < o.liveResizingTolerance) + return; // SKIP resize this time + // resize the pane + manualSizePane(pane, newSize, false, true); // true = noAnimation + sizeMasks(); // resize all visible masks + } + else { // resizingDone + // ondrag_end callback + if (false !== _runCallbacks("ondrag_end", pane)) + manualSizePane(pane, newSize, false, true); // true = noAnimation + hideMasks(); // hide all masks, which include panes with 'content/iframe-masks' + if (s.isSliding && masks) // RE-SHOW only 'object-masks' so objects won't show through sliding pane + showMasks( masks, true ); // true = onlyForObjects + } + }; + } + + /** + * sizeMask + * + * Needed to overlay a DIV over an IFRAME-pane because mask CANNOT be *inside* the pane + * Called when mask created, and during livePaneResizing + */ +, sizeMask = function () { + var $M = $(this) + , pane = $M.data("layoutMask") // eg: "west" + , s = state[pane] + ; + // only masks over an IFRAME-pane need manual resizing + if (s.tagName == "IFRAME" && s.isVisible) // no need to mask closed/hidden panes + $M.css({ + top: s.offsetTop + , left: s.offsetLeft + , width: s.outerWidth + , height: s.outerHeight + }); + /* ALT Method... + var $P = $Ps[pane]; + $M.css( $P.position() ).css({ width: $P[0].offsetWidth, height: $P[0].offsetHeight }); + */ + } +, sizeMasks = function () { + $Ms.each( sizeMask ); // resize all 'visible' masks + } + +, showMasks = function (panes, onlyForObjects) { + var a = panes ? panes.split(",") : $.layout.config.allPanes + , z = options.zIndexes + , o, s; + $.each(a, function(i,p){ + s = state[p]; + o = options[p]; + if (s.isVisible && ( (!onlyForObjects && o.maskContents) || o.maskObjects )) { + getMasks(p).each(function(){ + sizeMask.call(this); + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.display = "block"; + }); + } + }); + } + +, hideMasks = function () { + // ensure no pane is resizing - could be a timing issue + var skip; + $.each( $.layout.config.borderPanes, function(i,p){ + if (state[p].isResizing) { + skip = true; + return false; // BREAK + } + }); + if (!skip) + $Ms.hide(); // hide ALL masks + } + +, getMasks = function (pane) { + var $Masks = $([]) + , $M, i = 0, c = $Ms.length + ; + for (; i CSS + if (sC.tagName === "BODY" && ($N = $("html")).data(css)) // RESET CSS + $N.css( $N.data(css) ).removeData(css); + + // trigger plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onDestroy ); + + // trigger state-management and onunload callback + unload(); + + // clear the Instance of everything except for container & options (so could recreate) + // RE-CREATE: myLayout = myLayout.container.layout( myLayout.options ); + for (n in Instance) + if (!n.match(/^(container|options)$/)) delete Instance[ n ]; + // add a 'destroyed' flag to make it easy to check + Instance.destroyed = true; + + // if this is a child layout, CLEAR the child-pointer in the parent + /* for now the pointer REMAINS, but with only container, options and destroyed keys + if (parentPane) { + var layout = parentPane.pane.data("parentLayout"); + parentPane.child = layout.children[ parentPane.name ] = null; + } + */ + + return Instance; // for coding convenience + } + + /** + * Remove a pane from the layout - subroutine of destroy() + * + * @see destroy() + * @param {string|Object} evt_or_pane The pane to process + * @param {boolean=} [remove=false] Remove the DOM element? + * @param {boolean=} [skipResize=false] Skip calling resizeAll()? + * @param {boolean=} [destroyChild=true] Destroy Child-layouts? If not passed, obeys options setting + */ +, removePane = function (evt_or_pane, remove, skipResize, destroyChild) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $C = $Cs[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + ; + // NOTE: elements can still exist even after remove() + // so check for missing data(), which is cleared by removed() + if ($P && $.isEmptyObject( $P.data() )) $P = false; + if ($C && $.isEmptyObject( $C.data() )) $C = false; + if ($R && $.isEmptyObject( $R.data() )) $R = false; + if ($T && $.isEmptyObject( $T.data() )) $T = false; + + if ($P) $P.stop(true, true); + + // check for a child layout + var o = options[pane] + , s = state[pane] + , d = "layout" + , css = "layoutCSS" + , child = children[pane] || ($P ? $P.data(d) : 0) || ($C ? $C.data(d) : 0) || null + , destroy = destroyChild !== undefined ? destroyChild : o.destroyChildLayout + ; + + // FIRST destroy the child-layout(s) + if (destroy && child && !child.destroyed) { + child.destroy(true); // tell child-layout to destroy ALL its child-layouts too + if (child.destroyed) // destroy was successful + child = null; // clear pointer for logic below + } + + if ($P && remove && !child) + $P.remove(); + else if ($P && $P[0]) { + // create list of ALL pane-classes that need to be removed + var root = o.paneClass // default="ui-layout-pane" + , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes + pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes + ; + $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes + // remove all Layout classes from pane-element + $P .removeClass( classes.join(" ") ) // remove ALL pane-classes + .removeData("parentLayout") + .removeData("layoutPane") + .removeData("layoutRole") + .removeData("layoutEdge") + .removeData("autoHidden") // in case set + .unbind("."+ sID) // remove ALL Layout events + // TODO: remove these extra unbind commands when jQuery is fixed + //.unbind("mouseenter"+ sID) + //.unbind("mouseleave"+ sID) + ; + // do NOT reset CSS if this pane/content is STILL the container of a nested layout! + // the nested layout will reset its 'container' CSS when/if it is destroyed + if ($C && $C.data(d)) { + // a content-div may not have a specific width, so give it one to contain the Layout + $C.width( $C.width() ); + child.resizeAll(); // now resize the Layout + } + else if ($C) + $C.css( $C.data(css) ).removeData(css).removeData("layoutRole"); + // remove pane AFTER content in case there was a nested layout + if (!$P.data(d)) + $P.css( $P.data(css) ).removeData(css); + } + + // REMOVE pane resizer and toggler elements + if ($T) $T.remove(); + if ($R) $R.remove(); + + // CLEAR all pointers and state data + Instance[pane] = $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = children[pane] = false; + s = { removed: true }; + + if (!skipResize) + resizeAll(); + } + + +/* + * ########################### + * ACTION METHODS + * ########################### + */ + +, _hidePane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , s = $P[0].style + ; + if (o.useOffscreenClose) { + if (!$P.data(_c.offscreenReset)) + $P.data(_c.offscreenReset, { left: s.left, right: s.right }); + $P.css( _c.offscreenCSS ); + } + else + $P.hide().removeData(_c.offscreenReset); + } + +, _showPane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , off = _c.offscreenCSS + , old = $P.data(_c.offscreenReset) + , s = $P[0].style + ; + $P .show() // ALWAYS show, just in case + .removeData(_c.offscreenReset); + if (o.useOffscreenClose && old) { + if (s.left == off.left) + s.left = old.left; + if (s.right == off.right) + s.right = old.right; + } + } + + + /** + * Completely 'hides' a pane, including its spacing - as if it does not exist + * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it + * + * @param {string|Object} evt_or_pane The pane being hidden, ie: north, south, east, or west + * @param {boolean=} [noAnimation=false] + */ +, hide = function (evt_or_pane, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (!$P || s.isHidden) return; // pane does not exist OR is already hidden + + // onhide_start callback - will CANCEL hide if returns false + if (state.initialized && false === _runCallbacks("onhide_start", pane)) return; + + s.isSliding = false; // just in case + + // now hide the elements + if ($R) $R.hide(); // hide resizer-bar + if (!state.initialized || s.isClosed) { + s.isClosed = true; // to trigger open-animation on show() + s.isHidden = true; + s.isVisible = false; + if (!state.initialized) + _hidePane(pane); // no animation when loading page + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center"); + if (state.initialized || o.triggerEventsOnLoad) + _runCallbacks("onhide_end", pane); + } + else { + s.isHiding = true; // used by onclose + close(pane, false, noAnimation); // adjust all panes to fit + } + } + + /** + * Show a hidden pane - show as 'closed' by default unless openPane = true + * + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [openPane=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, show = function (evt_or_pane, openPane, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (!$P || !s.isHidden) return; // pane does not exist OR is not hidden + + // onshow_start callback - will CANCEL show if returns false + if (false === _runCallbacks("onshow_start", pane)) return; + + s.isSliding = false; // just in case + s.isShowing = true; // used by onopen/onclose + //s.isHidden = false; - will be set by open/close - if not cancelled + + // now show the elements + //if ($R) $R.show(); - will be shown by open/close + if (openPane === false) + close(pane, true); // true = force + else + open(pane, false, noAnimation, noAlert); // adjust all panes to fit + } + + + /** + * Toggles a pane open/closed by calling either open or close + * + * @param {string|Object} evt_or_pane The pane being toggled, ie: north, south, east, or west + * @param {boolean=} [slide=false] + */ +, toggle = function (evt_or_pane, slide) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + ; + if (evt) // called from to $R.dblclick OR triggerPaneEvent + evt.stopImmediatePropagation(); + if (s.isHidden) + show(pane); // will call 'open' after unhiding it + else if (s.isClosed) + open(pane, !!slide); + else + close(pane); + } + + + /** + * Utility method used during init or other auto-processes + * + * @param {string} pane The pane being closed + * @param {boolean=} [setHandles=false] + */ +, _closePane = function (pane, setHandles) { + var + $P = $Ps[pane] + , s = state[pane] + ; + _hidePane(pane); + s.isClosed = true; + s.isVisible = false; + // UNUSED: if (setHandles) setAsClosed(pane, true); // true = force + } + + /** + * Close the specified pane (animation optional), and resize all other panes as needed + * + * @param {string|Object} evt_or_pane The pane being closed, ie: north, south, east, or west + * @param {boolean=} [force=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [skipCallback=false] + */ +, close = function (evt_or_pane, force, noAnimation, skipCallback) { + var pane = evtPane.call(this, evt_or_pane); + // if pane has been initialized, but NOT the complete layout, close pane instantly + if (!state.initialized && $Ps[pane]) { + _closePane(pane); // INIT pane as closed + return; + } + if (!isInitialized()) return; + + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing, isHiding, wasSliding; + + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.closable && !s.isShowing && !s.isHiding) // invalid request // (!o.resizable && !o.closable) ??? + || (!force && s.isClosed && !s.isShowing) // already closed + ) return queueNext(); + + // onclose_start callback - will CANCEL hide if returns false + // SKIP if just 'showing' a hidden pane as 'closed' + var abort = !s.isShowing && false === _runCallbacks("onclose_start", pane); + + // transfer logic vars to temp vars + isShowing = s.isShowing; + isHiding = s.isHiding; + wasSliding = s.isSliding; + // now clear the logic vars (REQUIRED before aborting) + delete s.isShowing; + delete s.isHiding; + + if (abort) return queueNext(); + + doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"); + s.isMoving = true; + s.isClosed = true; + s.isVisible = false; + // update isHidden BEFORE sizing panes + if (isHiding) s.isHidden = true; + else if (isShowing) s.isHidden = false; + + if (s.isSliding) // pane is being closed, so UNBIND trigger events + bindStopSlidingEvents(pane, false); // will set isSliding=false + else // resize panes adjacent to this one + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center", false); // false = NOT skipCallback + + // if this pane has a resizer bar, move it NOW - before animation + setAsClosed(pane); + + // CLOSE THE PANE + if (doFX) { // animate the close + // mask panes with objects + var masks = "center"+ (c.dir=="horz" ? ",west,east" : ""); + showMasks( masks, true ); // true = ONLY mask panes with maskObjects=true + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { + lockPaneForFX(pane, false); // undo + if (s.isClosed) close_2(); + queueNext(); + }); + } + else { // hide the pane without animation + _hidePane(pane); + close_2(); + queueNext(); + }; + }); + + // SUBROUTINE + function close_2 () { + s.isMoving = false; + bindStartSlidingEvent(pane, true); // will enable if o.slidable = true + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane ); + } + + // hide any masks shown while closing + hideMasks(); + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { + // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' + if (!isShowing) _runCallbacks("onclose_end", pane); + // onhide OR onshow callback + if (isShowing) _runCallbacks("onshow_end", pane); + if (isHiding) _runCallbacks("onhide_end", pane); + } + } + } + + /** + * @param {string} pane The pane just closed, ie: north, south, east, or west + */ +, setAsClosed = function (pane) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side.toLowerCase() + , inset = "inset"+ _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + ; + $R + .css(side, sC[inset]) // move the resizer + .removeClass( rClass+_open +" "+ rClass+_pane+_open ) + .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .unbind("dblclick."+ sID) + ; + // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvent? + if (o.resizable && $.layout.plugins.draggable) + $R + .draggable("disable") + .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here + .css("cursor", "default") + .attr("title","") + ; + + // if pane has a toggler button, adjust that too + if ($T) { + $T + .removeClass( tClass+_open +" "+ tClass+_pane+_open ) + .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .attr("title", o.tips.Open) // may be blank + ; + // toggler-content - if exists + $T.children(".content-open").hide(); + $T.children(".content-closed").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, false); + + if (state.initialized) { + // resize 'length' and position togglers for adjacent panes + sizeHandles(); + } + } + + /** + * Open the specified pane (animation optional), and resize all other panes as needed + * + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [slide=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, open = function (evt_or_pane, slide, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing + ; + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.resizable && !o.closable && !s.isShowing) // invalid request + || (s.isVisible && !s.isSliding) // already open + ) return queueNext(); + + // pane can ALSO be unhidden by just calling show(), so handle this scenario + if (s.isHidden && !s.isShowing) { + queueNext(); // call before show() because it needs the queue free + show(pane, true); + return; + } + + if (o.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/forceResize/noAnimation + else + // make sure there is enough space available to open the pane + setSizeLimits(pane, slide); + + // onopen_start callback - will CANCEL open if returns false + var cbReturn = _runCallbacks("onopen_start", pane); + + if (cbReturn === "abort") + return queueNext(); + + // update pane-state again in case options were changed in onopen_start + if (cbReturn !== "NC") // NC = "No Callback" + setSizeLimits(pane, slide); + + if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! + syncPinBtns(pane, false); // make sure pin-buttons are reset + if (!noAlert && o.tips.noRoomToOpen) + alert(o.tips.noRoomToOpen); + return queueNext(); // ABORT + } + + if (slide) // START Sliding - will set isSliding=true + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead + bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false + else if (o.slidable) + bindStartSlidingEvent(pane, false); // UNBIND trigger events + + s.noRoom = false; // will be reset by makePaneFit if 'noRoom' + makePaneFit(pane); + + // transfer logic var to temp var + isShowing = s.isShowing; + // now clear the logic var + delete s.isShowing; + + doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"); + s.isMoving = true; + s.isVisible = true; + s.isClosed = false; + // update isHidden BEFORE sizing panes - WHY??? Old? + if (isShowing) s.isHidden = false; + + if (doFX) { // ANIMATE + // mask panes with objects + var masks = "center"+ (c.dir=="horz" ? ",west,east" : ""); + if (s.isSliding) masks += ","+ _c.oppositeEdge[pane]; + showMasks( masks, true ); // true = ONLY mask panes with maskObjects=true + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { + lockPaneForFX(pane, false); // undo + if (s.isVisible) open_2(); // continue + queueNext(); + }); + } + else { // no animation + _showPane(pane);// just show pane and... + open_2(); // continue + queueNext(); + }; + }); + + // SUBROUTINE + function open_2 () { + s.isMoving = false; + + // cure iframe display issues + _fixIframe(pane); + + // NOTE: if isSliding, then other panes are NOT 'resized' + if (!s.isSliding) { // resize all panes adjacent to this one + hideMasks(); // remove any masks shown while opening + sizeMidPanes(_c[pane].dir=="vert" ? "center" : "", false); // false = NOT skipCallback + } + + // set classes, position handles and execute callbacks... + setAsOpen(pane); + }; + + } + + /** + * @param {string} pane The pane just opened, ie: north, south, east, or west + * @param {boolean=} [skipCallback=false] + */ +, setAsOpen = function (pane, skipCallback) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side.toLowerCase() + , inset = "inset"+ _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _closed = "-closed" + , _sliding= "-sliding" + ; + $R + .css(side, sC[inset] + getPaneSize(pane)) // move the resizer + .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .addClass( rClass+_open +" "+ rClass+_pane+_open ) + ; + if (s.isSliding) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + else // in case 'was sliding' + $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + + if (o.resizerDblClickToggle) + $R.bind("dblclick", toggle ); + removeHover( 0, $R ); // remove hover classes + if (o.resizable && $.layout.plugins.draggable) + $R .draggable("enable") + .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + else if (!s.isSliding) + $R.css("cursor", "default"); // n-resize, s-resize, etc + + // if pane also has a toggler button, adjust that too + if ($T) { + $T .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .addClass( tClass+_open +" "+ tClass+_pane+_open ) + .attr("title", o.tips.Close); // may be blank + removeHover( 0, $T ); // remove hover classes + // toggler-content - if exists + $T.children(".content-closed").hide(); + $T.children(".content-open").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, !s.isSliding); + + // update pane-state dimensions - BEFORE resizing content + $.extend(s, elDims($P)); + + if (state.initialized) { + // resize resizer & toggler sizes for all panes + sizeHandles(); + // resize content every time pane opens - to be sure + sizeContent(pane, true); // true = remeasure headers/footers, even if 'pane.isMoving' + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { + // onopen callback + _runCallbacks("onopen_end", pane); + // onshow callback - TODO: should this be here? + if (s.isShowing) _runCallbacks("onshow_end", pane); + + // ALSO call onresize because layout-size *may* have changed while pane was closed + if (state.initialized) + _runCallbacks("onresize_end", pane); + } + + // TODO: Somehow sizePane("north") is being called after this point??? + } + + + /** + * slideOpen / slideClose / slideToggle + * + * Pass-though methods for sliding + */ +, slideOpen = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + , delay = options[pane].slideDelay_open + ; + // prevent event from triggering on NEW resizer binding created below + if (evt) evt.stopImmediatePropagation(); + + if (s.isClosed && evt && evt.type === "mouseenter" && delay > 0) + // trigger = mouseenter - use a delay + timer.set(pane+"_openSlider", open_NOW, delay); + else + open_NOW(); // will unbind events if is already open + + /** + * SUBROUTINE for timed open + */ + function open_NOW () { + if (!s.isClosed) // skip if no longer closed! + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (!s.isMoving) + open(pane, true); // true = slide - open() will handle binding + }; + } + +, slideClose = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , delay = s.isMoving ? 1000 : 300 // MINIMUM delay - option may override + ; + if (s.isClosed || s.isResizing) + return; // skip if already closed OR in process of resizing + else if (o.slideTrigger_close === "click") + close_NOW(); // close immediately onClick + else if (o.preventQuickSlideClose && s.isMoving) + return; // handle Chrome quick-close on slide-open + else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) + return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + else if (evt) // trigger = mouseleave - use a delay + // 1 sec delay if 'opening', else .3 sec + timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); + else // called programically + close_NOW(); + + /** + * SUBROUTINE for timed close + */ + function close_NOW () { + if (s.isClosed) // skip 'close' if already closed! + bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? + else if (!s.isMoving) + close(pane); // close will handle unbinding + }; + } + + /** + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + */ +, slideToggle = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + toggle(pane, true); + } + + + /** + * Must set left/top on East/South panes so animation will work properly + * + * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! + * @param {boolean} doLock true = set left/top, false = remove + */ +, lockPaneForFX = function (pane, doLock) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + , z = options.zIndexes + ; + if (doLock) { + $P.css({ zIndex: z.pane_animate }); // overlay all elements during animation + if (pane=="south") + $P.css({ top: sC.insetTop + sC.innerHeight - $P.outerHeight() }); + else if (pane=="east") + $P.css({ left: sC.insetLeft + sC.innerWidth - $P.outerWidth() }); + } + else { // animation DONE - RESET CSS + // TODO: see if this can be deleted. It causes a quick-close when sliding in Chrome + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + if (pane=="south") + $P.css({ top: "auto" }); + // if pane is positioned 'off-screen', then DO NOT screw with it! + else if (pane=="east" && !$P.css("left").match(/\-99999/)) + $P.css({ left: "auto" }); + // fix anti-aliasing in IE - only needed for animations that change opacity + if (browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) + $P[0].style.removeAttribute('filter'); + } + } + + + /** + * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger + * + * @see open(), close() + * @param {string} pane The pane to enable/disable, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable sliding? + */ +, bindStartSlidingEvent = function (pane, enable) { + var o = options[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , evtName = o.slideTrigger_open.toLowerCase() + ; + if (!$R || (enable && !o.slidable)) return; + + // make sure we have a valid event + if (evtName.match(/mouseover/)) + evtName = o.slideTrigger_open = "mouseenter"; + else if (!evtName.match(/(click|dblclick|mouseenter)/)) + evtName = o.slideTrigger_open = "click"; + + $R + // add or remove event + [enable ? "bind" : "unbind"](evtName +'.'+ sID, slideOpen) + // set the appropriate cursor & title/tip + .css("cursor", enable ? o.sliderCursor : "default") + .attr("title", enable ? o.tips.Slide : "") + ; + } + + /** + * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed + * Also increases zIndex when pane is sliding open + * See bindStartSlidingEvent for code to control 'slide open' + * + * @see slideOpen(), slideClose() + * @param {string} pane The pane to process, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable events? + */ +, bindStopSlidingEvents = function (pane, enable) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , z = options.zIndexes + , evtName = o.slideTrigger_close.toLowerCase() + , action = (enable ? "bind" : "unbind") + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + s.isSliding = enable; // logic + timer.clear(pane+"_closeSlider"); // just in case + + // remove 'slideOpen' event from resizer + // ALSO will raise the zIndex of the pane & resizer + if (enable) bindStartSlidingEvent(pane, false); + + // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not + $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); + $R.css("zIndex", enable ? z.pane_sliding+2 : z.resizer_normal); // NOTE: mask = pane_sliding+1 + + // make sure we have a valid event + if (!evtName.match(/(click|mouseleave)/)) + evtName = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' + + // add/remove slide triggers + $R[action](evtName, slideClose); // base event on resize + // need extra events for mouseleave + if (evtName === "mouseleave") { + // also close on pane.mouseleave + $P[action]("mouseleave."+ sID, slideClose); + // cancel timer when mouse moves between 'pane' and 'resizer' + $R[action]("mouseenter."+ sID, cancelMouseOut); + $P[action]("mouseenter."+ sID, cancelMouseOut); + } + + if (!enable) + timer.clear(pane+"_closeSlider"); + else if (evtName === "click" && !o.resizable) { + // IF pane is not resizable (which already has a cursor and tip) + // then set the a cursor & title/tip on resizer when sliding + $R.css("cursor", enable ? o.sliderCursor : "default"); + $R.attr("title", enable ? o.tips.Close : ""); // use Toggler-tip, eg: "Close Pane" + } + + // SUBROUTINE for mouseleave timer clearing + function cancelMouseOut (evt) { + timer.clear(pane+"_closeSlider"); + evt.stopPropagation(); + } + } + + + /** + * Hides/closes a pane if there is insufficient room - reverses this when there is room again + * MUST have already called setSizeLimits() before calling this method + * + * @param {string} pane The pane being resized + * @param {boolean=} [isOpening=false] Called from onOpen? + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, makePaneFit = function (pane, isOpening, skipCallback, force) { + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isSidePane = c.dir==="vert" + , hasRoom = false + ; + // special handling for center & east/west panes + if (pane === "center" || (isSidePane && s.noVerticalRoom)) { + // see if there is enough room to display the pane + // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); + hasRoom = (s.maxHeight >= 0); + if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now + _showPane(pane); + if ($R) $R.show(); + s.isVisible = true; + s.noRoom = false; + if (isSidePane) s.noVerticalRoom = false; + _fixIframe(pane); + } + else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now + _hidePane(pane); + if ($R) $R.hide(); + s.isVisible = false; + s.noRoom = true; + } + } + + // see if there is enough room to fit the border-pane + if (pane === "center") { + // ignore center in this block + } + else if (s.minSize <= s.maxSize) { // pane CAN fit + hasRoom = true; + if (s.size > s.maxSize) // pane is too big - shrink it + sizePane(pane, s.maxSize, skipCallback, force, true); // true = noAnimation + else if (s.size < s.minSize) // pane is too small - enlarge it + sizePane(pane, s.minSize, skipCallback, force, true); + // need s.isVisible because new pseudoClose method keeps pane visible, but off-screen + else if ($R && s.isVisible && $P.is(":visible")) { + // make sure resizer-bar is positioned correctly + // handles situation where nested layout was 'hidden' when initialized + var side = c.side.toLowerCase() + , pos = s.size + sC["inset"+ c.side] + ; + if ($.layout.cssNum($R, side) != pos) $R.css( side, pos ); + } + + // if was previously hidden due to noRoom, then RESET because NOW there is room + if (s.noRoom) { + // s.noRoom state will be set by open or show + if (s.wasOpen && o.closable) { + if (o.autoReopen) + open(pane, false, true, true); // true = noAnimation, true = noAlert + else // leave the pane closed, so just update state + s.noRoom = false; + } + else + show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert + } + } + else { // !hasRoom - pane CANNOT fit + if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... + s.noRoom = true; // update state + s.wasOpen = !s.isClosed && !s.isSliding; + if (s.isClosed){} // SKIP + else if (o.closable) // 'close' if possible + close(pane, true, true); // true = force, true = noAnimation + else // 'hide' pane if cannot just be closed + hide(pane, true); // true = noAnimation + } + } + } + + + /** + * sizePane / manualSizePane + * sizePane is called only by internal methods whenever a pane needs to be resized + * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' + * + * @param {string|Object} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + */ +, manualSizePane = function (evt_or_pane, size, skipCallback, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... + , forceResize = o.livePaneResizing && !s.isResizing + ; + // ANY call to manualSizePane disables autoResize - ie, percentage sizing + o.autoResize = false; + // flow-through... + sizePane(pane, size, skipCallback, forceResize, noAnimation); // will animate resize if option enabled + } + + /** + * @param {string|Object} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + * @param {boolean=} [noAnimation=false] + */ +, sizePane = function (evt_or_pane, size, skipCallback, force, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) // probably NEVER called from event? + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , side = _c[pane].side.toLowerCase() + , dimName = _c[pane].sizeType.toLowerCase() + , inset = "inset"+ _c[pane].side + , skipResizeWhileDragging = s.isResizing && !o.triggerEventsDuringLiveResize + , doFX = noAnimation !== true && o.animatePaneSizing + , oldSize, newSize + ; + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + // calculate 'current' min/max sizes + setSizeLimits(pane); // update pane-state + oldSize = s.size; + size = _parseSize(pane, size); // handle percentages & auto + size = max(size, _parseSize(pane, o.minSize)); + size = min(size, s.maxSize); + if (size < s.minSize) { // not enough room for pane! + queueNext(); // call before makePaneFit() because it needs the queue free + makePaneFit(pane, false, skipCallback); // will hide or close pane + return; + } + + // IF newSize is same as oldSize, then nothing to do - abort + if (!force && size === oldSize) + return queueNext(); + + // onresize_start callback CANNOT cancel resizing because this would break the layout! + if (!skipCallback && state.initialized && s.isVisible) + _runCallbacks("onresize_start", pane); + + // resize the pane, and make sure its visible + newSize = cssSize(pane, size); + + if (doFX && $P.is(":visible")) { // ANIMATE + var fx = $.layout.effects.size[pane] || $.layout.effects.size.all + , easing = o.fxSettings_size.easing || fx.easing + , z = options.zIndexes + , props = {}; + props[ dimName ] = newSize +'px'; + s.isMoving = true; + // overlay all elements during animation + $P.css({ zIndex: z.pane_animate }) + .show().animate( props, o.fxSpeed_size, easing, function(){ + // reset zIndex after animation + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + s.isMoving = false; + sizePane_2(); // continue + queueNext(); + }); + } + else { // no animation + $P.css( dimName, newSize ); // resize pane + // if pane is visible, then + if ($P.is(":visible")) + sizePane_2(); // continue + else { + // pane is NOT VISIBLE, so just update state data... + // when pane is *next opened*, it will have the new size + s.size = size; // update state.size + $.extend(s, elDims($P)); // update state dimensions + } + queueNext(); + }; + + }); + + // SUBROUTINE + function sizePane_2 () { + /* Panes are sometimes not sized precisely in some browsers!? + * This code will resize the pane up to 3 times to nudge the pane to the correct size + */ + var actual = dimName==='width' ? $P.outerWidth() : $P.outerHeight() + , tries = [{ + pane: pane + , count: 1 + , target: size + , actual: actual + , correct: (size === actual) + , attempt: size + , cssSize: newSize + }] + , lastTry = tries[0] + , thisTry = {} + , msg = 'Inaccurate size after resizing the '+ pane +'-pane.' + ; + while ( !lastTry.correct ) { + thisTry = { pane: pane, count: lastTry.count+1, target: size }; + + if (lastTry.actual > size) + thisTry.attempt = max(0, lastTry.attempt - (lastTry.actual - size)); + else // lastTry.actual < size + thisTry.attempt = max(0, lastTry.attempt + (size - lastTry.actual)); + + thisTry.cssSize = cssSize(pane, thisTry.attempt); + $P.css( dimName, thisTry.cssSize ); + + thisTry.actual = dimName=='width' ? $P.outerWidth() : $P.outerHeight(); + thisTry.correct = (size === thisTry.actual); + + // log attempts and alert the user of this *non-fatal error* (if showDebugMessages) + if ( tries.length === 1) { + _log(msg, false, true); + _log(lastTry, false, true); + } + _log(thisTry, false, true); + // after 4 tries, is as close as its gonna get! + if (tries.length > 3) break; + + tries.push( thisTry ); + lastTry = tries[ tries.length - 1 ]; + } + // END TESTING CODE + + // update pane-state dimensions + s.size = size; + $.extend(s, elDims($P)); + + if (s.isVisible && $P.is(":visible")) { + // reposition the resizer-bar + if ($R) $R.css( side, size + sC[inset] ); + // resize the content-div + sizeContent(pane); + } + + if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) + _runCallbacks("onresize_end", pane); + + // resize all the adjacent panes, and adjust their toggler buttons + // when skipCallback passed, it means the controlling method will handle 'other panes' + if (!skipCallback) { + // also no callback if live-resize is in progress and NOT triggerEventsDuringLiveResize + if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "" : "center", skipResizeWhileDragging, force); + sizeHandles(); + } + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (size < oldSize && state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane, false, skipCallback ); + } + + // DEBUG - ALERT user/developer so they know there was a sizing problem + if (tries.length > 1) + _log(msg +'\nSee the Error Console for details.', true, true); + } + } + + /** + * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() + * @param {Array.|string} panes The pane(s) being resized, comma-delmited string + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, sizeMidPanes = function (panes, skipCallback, force) { + panes = (panes ? panes : "east,west,center").split(","); + + $.each(panes, function (i, pane) { + if (!$Ps[pane]) return; // NO PANE - skip + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isCenter= (pane=="center") + , hasRoom = true + , CSS = {} + , newCenter = calcNewCenterPaneDims() + ; + // update pane-state dimensions + $.extend(s, elDims($P)); + + if (pane === "center") { + if (!force && s.isVisible && newCenter.width === s.outerWidth && newCenter.height === s.outerHeight) + return true; // SKIP - pane already the correct size + // set state for makePaneFit() logic + $.extend(s, cssMinDims(pane), { + maxWidth: newCenter.width + , maxHeight: newCenter.height + }); + CSS = newCenter; + // convert OUTER width/height to CSS width/height + CSS.width = cssW($P, CSS.width); + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, CSS.height); + hasRoom = CSS.width >= 0 && CSS.height >= 0; // height >= 0 = ALWAYS TRUE NOW + // during layout init, try to shrink east/west panes to make room for center + if (!state.initialized && o.minWidth > s.outerWidth) { + var + reqPx = o.minWidth - s.outerWidth + , minE = options.east.minSize || 0 + , minW = options.west.minSize || 0 + , sizeE = state.east.size + , sizeW = state.west.size + , newE = sizeE + , newW = sizeW + ; + if (reqPx > 0 && state.east.isVisible && sizeE > minE) { + newE = max( sizeE-minE, sizeE-reqPx ); + reqPx -= sizeE-newE; + } + if (reqPx > 0 && state.west.isVisible && sizeW > minW) { + newW = max( sizeW-minW, sizeW-reqPx ); + reqPx -= sizeW-newW; + } + // IF we found enough extra space, then resize the border panes as calculated + if (reqPx === 0) { + if (sizeE && sizeE != minE) + sizePane('east', newE, true, force, true); // true = skipCallback/noAnimation - initPanes will handle when done + if (sizeW && sizeW != minW) + sizePane('west', newW, true, force, true); + // now start over! + sizeMidPanes('center', skipCallback, force); + return; // abort this loop + } + } + } + else { // for east and west, set only the height, which is same as center height + // set state.min/maxWidth/Height for makePaneFit() logic + if (s.isVisible && !s.noVerticalRoom) + $.extend(s, elDims($P), cssMinDims(pane)) + if (!force && !s.noVerticalRoom && newCenter.height === s.outerHeight) + return true; // SKIP - pane already the correct size + // east/west have same top, bottom & height as center + CSS.top = newCenter.top; + CSS.bottom = newCenter.bottom; + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, newCenter.height); + s.maxHeight = CSS.height; + hasRoom = (s.maxHeight >= 0); // ALWAYS TRUE NOW + if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic + } + + if (hasRoom) { + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_start", pane); + + $P.css(CSS); // apply the CSS to pane + if (pane !== "center") + sizeHandles(pane); // also update resizer length + if (s.noRoom && !s.isClosed && !s.isHidden) + makePaneFit(pane); // will re-open/show auto-closed/hidden pane + if (s.isVisible) { + $.extend(s, elDims($P)); // update pane dimensions + if (state.initialized) sizeContent(pane); // also resize the contents, if exists + } + } + else if (!s.noRoom && s.isVisible) // no room for pane + makePaneFit(pane); // will hide or close pane + + if (!s.isVisible) + return true; // DONE - next pane + + /* + * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes + * Normally these panes have only 'left' & 'right' positions so pane auto-sizes + * ALSO required when pane is an IFRAME because will NOT default to 'full width' + * TODO: Can I use width:100% for a north/south iframe? + * TODO: Sounds like a job for $P.outerWidth( sC.innerWidth ) SETTER METHOD + */ + if (pane === "center") { // finished processing midPanes + var fix = browser.isIE6 || !browser.boxModel; + if ($Ps.north && (fix || state.north.tagName=="IFRAME")) + $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); + if ($Ps.south && (fix || state.south.tagName=="IFRAME")) + $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); + } + + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_end", pane); + }); + } + + + /** + * @see window.onresize(), callbacks or custom code + */ +, resizeAll = function (evt) { + // stopPropagation if called by trigger("layoutdestroy") - use evtPane utility + evtPane(evt); + + if (!state.initialized) { + _initLayoutElements(); + return; // no need to resize since we just initialized! + } + var oldW = sC.innerWidth + , oldH = sC.innerHeight + ; + // cannot size layout when 'container' is hidden or collapsed + if (!$N.is(":visible") ) return; + $.extend(state.container, elDims( $N )); // UPDATE container dimensions + if (!sC.outerHeight) return; + + // onresizeall_start will CANCEL resizing if returns false + // state.container has already been set, so user can access this info for calcuations + if (false === _runCallbacks("onresizeall_start")) return false; + + var // see if container is now 'smaller' than before + shrunkH = (sC.innerHeight < oldH) + , shrunkW = (sC.innerWidth < oldW) + , $P, o, s, dir + ; + // NOTE special order for sizing: S-N-E-W + $.each(["south","north","east","west"], function (i, pane) { + if (!$Ps[pane]) return; // no pane - SKIP + s = state[pane]; + o = options[pane]; + dir = _c[pane].dir; + + if (o.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/forceResize/noAnimation + else { + setSizeLimits(pane); + makePaneFit(pane, false, true, true); // true=skipCallback/forceResize + } + }); + + sizeMidPanes("", true, true); // true=skipCallback, true=forceResize + sizeHandles(); // reposition the toggler elements + + // trigger all individual pane callbacks AFTER layout has finished resizing + o = options; // reuse alias + $.each(_c.allPanes, function (i, pane) { + $P = $Ps[pane]; + if (!$P) return; // SKIP + if (state[pane].isVisible) // undefined for non-existent panes + _runCallbacks("onresize_end", pane); // callback - if exists + }); + + _runCallbacks("onresizeall_end"); + //_triggerLayoutEvent(pane, 'resizeall'); + } + + /** + * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll + * + * @param {string|Object} evt_or_pane The pane just resized or opened + */ +, resizeChildLayout = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + if (!options[pane].resizeChildLayout) return; + var $P = $Ps[pane] + , $C = $Cs[pane] + , d = "layout" + , P = Instance[pane] + , L = children[pane] + ; + // user may have manually set EITHER instance pointer, so handle that + if (P.child && !L) { + // have to reverse the pointers! + var el = P.child.container; + L = children[pane] = (el ? el.data(d) : 0) || null; // set pointer _directly_ to layout instance + } + + // if a layout-pointer exists, see if child has been destroyed + if (L && L.destroyed) + L = children[pane] = null; // clear child pointers + // no child layout pointer is set - see if there is a child layout NOW + if (!L) L = children[pane] = $P.data(d) || ($C ? $C.data(d) : 0) || null; // set/update child pointers + + // ALWAYS refresh the pane.child alias + P.child = children[pane]; + + if (L) L.resizeAll(); + } + + + /** + * IF pane has a content-div, then resize all elements inside pane to fit pane-height + * + * @param {string|Object} evt_or_panes The pane(s) being resized + * @param {boolean=} [remeasure=false] Should the content (header/footer) be remeasured? + */ +, sizeContent = function (evt_or_panes, remeasure) { + if (!isInitialized()) return; + + var panes = evtPane.call(this, evt_or_panes); + panes = panes ? panes.split(",") : _c.allPanes; + + $.each(panes, function (idx, pane) { + var + $P = $Ps[pane] + , $C = $Cs[pane] + , o = options[pane] + , s = state[pane] + , m = s.content // m = measurements + ; + if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip + + // if content-element was REMOVED, update OR remove the pointer + if (!$C.length) { + initContent(pane, false); // false = do NOT sizeContent() - already there! + if (!$C) return; // no replacement element found - pointer have been removed + } + + // onsizecontent_start will CANCEL resizing if returns false + if (false === _runCallbacks("onsizecontent_start", pane)) return; + + // skip re-measuring offsets if live-resizing + if ((!s.isMoving && !s.isResizing) || o.liveContentResizing || remeasure || m.top == undefined) { + _measure(); + // if any footers are below pane-bottom, they may not measure correctly, + // so allow pane overflow and re-measure + if (m.hiddenFooters > 0 && $P.css("overflow") === "hidden") { + $P.css("overflow", "visible"); + _measure(); // remeasure while overflowing + $P.css("overflow", "hidden"); + } + } + // NOTE: spaceAbove/Below *includes* the pane paddingTop/Bottom, but not pane.borders + var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); + + if (!$C.is(":visible") || m.height != newH) { + // size the Content element to fit new pane-size - will autoHide if not enough room + setOuterHeight($C, newH, true); // true=autoHide + m.height = newH; // save new height + }; + + if (state.initialized) + _runCallbacks("onsizecontent_end", pane); + + function _below ($E) { + return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); + }; + + function _measure () { + var + ignore = options[pane].contentIgnoreSelector + , $Fs = $C.nextAll().not(ignore || ':lt(0)') // not :lt(0) = ALL + , $Fs_vis = $Fs.filter(':visible') + , $F = $Fs_vis.filter(':last') + ; + m = { + top: $C[0].offsetTop + , height: $C.outerHeight() + , numFooters: $Fs.length + , hiddenFooters: $Fs.length - $Fs_vis.length + , spaceBelow: 0 // correct if no content footer ($E) + } + m.spaceAbove = m.top; // just for state - not used in calc + m.bottom = m.top + m.height; + if ($F.length) + //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) + m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); + else // no footer - check marginBottom on Content element itself + m.spaceBelow = _below($C); + }; + }); + } + + + /** + * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary + * + * @see initHandles(), open(), close(), resizeAll() + * @param {string|Object} evt_or_panes The pane(s) being resized + */ +, sizeHandles = function (evt_or_panes) { + var panes = evtPane.call(this, evt_or_panes) + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (i, pane) { + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , $TC + ; + if (!$P || !$R) return; + + var + dir = _c[pane].dir + , _state = (s.isClosed ? "_closed" : "_open") + , spacing = o["spacing"+ _state] + , togAlign = o["togglerAlign"+ _state] + , togLen = o["togglerLength"+ _state] + , paneLen + , left + , offset + , CSS = {} + ; + + if (spacing === 0) { + $R.hide(); + return; + } + else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason + $R.show(); // in case was previously hidden + + // Resizer Bar is ALWAYS same width/height of pane it is attached to + if (dir === "horz") { // north/south + //paneLen = $P.outerWidth(); // s.outerWidth || + paneLen = sC.innerWidth; // handle offscreen-panes + s.resizerLength = paneLen; + left = $.layout.cssNum($P, "left") + $R.css({ + width: cssW($R, paneLen) // account for borders & padding + , height: cssH($R, spacing) // ditto + , left: left > -9999 ? left : sC.insetLeft // handle offscreen-panes + }); + } + else { // east/west + paneLen = $P.outerHeight(); // s.outerHeight || + s.resizerLength = paneLen; + $R.css({ + height: cssH($R, paneLen) // account for borders & padding + , width: cssW($R, spacing) // ditto + , top: sC.insetTop + getPaneSize("north", true) // TODO: what if no North pane? + //, top: $.layout.cssNum($Ps["center"], "top") + }); + } + + // remove hover classes + removeHover( o, $R ); + + if ($T) { + if (togLen === 0 || (s.isSliding && o.hideTogglerOnSlide)) { + $T.hide(); // always HIDE the toggler when 'sliding' + return; + } + else + $T.show(); // in case was previously hidden + + if (!(togLen > 0) || togLen === "100%" || togLen > paneLen) { + togLen = paneLen; + offset = 0; + } + else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed + if (isStr(togAlign)) { + switch (togAlign) { + case "top": + case "left": offset = 0; + break; + case "bottom": + case "right": offset = paneLen - togLen; + break; + case "middle": + case "center": + default: offset = round((paneLen - togLen) / 2); // 'default' catches typos + } + } + else { // togAlign = number + var x = parseInt(togAlign, 10); // + if (togAlign >= 0) offset = x; + else offset = paneLen - togLen + x; // NOTE: x is negative! + } + } + + if (dir === "horz") { // north/south + var width = cssW($T, togLen); + $T.css({ + width: width // account for borders & padding + , height: cssH($T, spacing) // ditto + , left: offset // TODO: VERIFY that toggler positions correctly for ALL values + , top: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginLeft", round((width-$TC.outerWidth())/2)); // could be negative + }); + } + else { // east/west + var height = cssH($T, togLen); + $T.css({ + height: height // account for borders & padding + , width: cssW($T, spacing) // ditto + , top: offset // POSITION the toggler + , left: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginTop", round((height-$TC.outerHeight())/2)); // could be negative + }); + } + + // remove ALL hover classes + removeHover( 0, $T ); + } + + // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now + if (!state.initialized && (o.initHidden || s.noRoom)) { + $R.hide(); + if ($T) $T.hide(); + } + }); + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableClosable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + , o = options[pane] + ; + if (!$T) return; + o.closable = true; + $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) + .css("visibility", "visible") + .css("cursor", "pointer") + .attr("title", state[pane].isClosed ? o.tips.Open : o.tips.Close) // may be blank + .show(); + } + /** + * @param {string|Object} evt_or_pane + * @param {boolean=} [hide=false] + */ +, disableClosable = function (evt_or_pane, hide) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + ; + if (!$T) return; + options[pane].closable = false; + // is closable is disable, then pane MUST be open! + if (state[pane].isClosed) open(pane, false, true); + $T .unbind("."+ sID) + .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues + .css("cursor", "default") + .attr("title", ""); + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].slidable = true; + if (state[pane].isClosed) + bindStartSlidingEvent(pane, true); + } + /** + * @param {string|Object} evt_or_pane + */ +, disableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R) return; + options[pane].slidable = false; + if (state[pane].isSliding) + close(pane, false, true); + else { + bindStartSlidingEvent(pane, false); + $R .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + , o = options[pane] + ; + if (!$R || !$R.data('draggable')) return; + o.resizable = true; + $R.draggable("enable"); + if (!state[pane].isClosed) + $R .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + } + /** + * @param {string|Object} evt_or_pane + */ +, disableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].resizable = false; + $R .draggable("disable") + .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + + + /** + * Move a pane from source-side (eg, west) to target-side (eg, east) + * If pane exists on target-side, move that to source-side, ie, 'swap' the panes + * + * @param {string|Object} evt_or_pane1 The pane/edge being swapped + * @param {string} pane2 ditto + */ +, swapPanes = function (evt_or_pane1, pane2) { + if (!isInitialized()) return; + var pane1 = evtPane.call(this, evt_or_pane1); + // change state.edge NOW so callbacks can know where pane is headed... + state[pane1].edge = pane2; + state[pane2].edge = pane1; + // run these even if NOT state.initialized + if (false === _runCallbacks("onswap_start", pane1) + || false === _runCallbacks("onswap_start", pane2) + ) { + state[pane1].edge = pane1; // reset + state[pane2].edge = pane2; + return; + } + + var + oPane1 = copy( pane1 ) + , oPane2 = copy( pane2 ) + , sizes = {} + ; + sizes[pane1] = oPane1 ? oPane1.state.size : 0; + sizes[pane2] = oPane2 ? oPane2.state.size : 0; + + // clear pointers & state + $Ps[pane1] = false; + $Ps[pane2] = false; + state[pane1] = {}; + state[pane2] = {}; + + // ALWAYS remove the resizer & toggler elements + if ($Ts[pane1]) $Ts[pane1].remove(); + if ($Ts[pane2]) $Ts[pane2].remove(); + if ($Rs[pane1]) $Rs[pane1].remove(); + if ($Rs[pane2]) $Rs[pane2].remove(); + $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; + + // transfer element pointers and data to NEW Layout keys + move( oPane1, pane2 ); + move( oPane2, pane1 ); + + // cleanup objects + oPane1 = oPane2 = sizes = null; + + // make panes 'visible' again + if ($Ps[pane1]) $Ps[pane1].css(_c.visible); + if ($Ps[pane2]) $Ps[pane2].css(_c.visible); + + // fix any size discrepancies caused by swap + resizeAll(); + + // run these even if NOT state.initialized + _runCallbacks("onswap_end", pane1); + _runCallbacks("onswap_end", pane2); + + return; + + function copy (n) { // n = pane + var + $P = $Ps[n] + , $C = $Cs[n] + ; + return !$P ? false : { + pane: n + , P: $P ? $P[0] : false + , C: $C ? $C[0] : false + , state: $.extend(true, {}, state[n]) + , options: $.extend(true, {}, options[n]) + } + }; + + function move (oPane, pane) { + if (!oPane) return; + var + P = oPane.P + , C = oPane.C + , oldPane = oPane.pane + , c = _c[pane] + , side = c.side.toLowerCase() + , inset = "inset"+ c.side + // save pane-options that should be retained + , s = $.extend(true, {}, state[pane]) + , o = options[pane] + // RETAIN side-specific FX Settings - more below + , fx = { resizerCursor: o.resizerCursor } + , re, size, pos + ; + $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { + fx[k +"_open"] = o[k +"_open"]; + fx[k +"_close"] = o[k +"_close"]; + fx[k +"_size"] = o[k +"_size"]; + }); + + // update object pointers and attributes + $Ps[pane] = $(P) + .data({ + layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + }) + .css(_c.hidden) + .css(c.cssReq) + ; + $Cs[pane] = C ? $(C) : false; + + // set options and state + options[pane] = $.extend(true, {}, oPane.options, fx); + state[pane] = $.extend(true, {}, oPane.state); + + // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west + re = new RegExp(o.paneClass +"-"+ oldPane, "g"); + P.className = P.className.replace(re, o.paneClass +"-"+ pane); + + // ALWAYS regenerate the resizer & toggler elements + initHandles(pane); // create the required resizer & toggler + + // if moving to different orientation, then keep 'target' pane size + if (c.dir != _c[oldPane].dir) { + size = sizes[pane] || 0; + setSizeLimits(pane); // update pane-state + size = max(size, state[pane].minSize); + // use manualSizePane to disable autoResize - not useful after panes are swapped + manualSizePane(pane, size, true, true); // true/true = skipCallback/noAnimation + } + else // move the resizer here + $Rs[pane].css(side, sC[inset] + (state[pane].isVisible ? getPaneSize(pane) : 0)); + + + // ADD CLASSNAMES & SLIDE-BINDINGS + if (oPane.state.isVisible && !s.isVisible) + setAsOpen(pane, true); // true = skipCallback + else { + setAsClosed(pane); + bindStartSlidingEvent(pane, true); // will enable events IF option is set + } + + // DESTROY the object + oPane = null; + }; + } + + + /** + * INTERNAL method to sync pin-buttons when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), setAsOpen(), setAsClosed() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns = function (pane, doPin) { + if ($.layout.plugins.buttons) + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(Instance, $(selector), pane, doPin); + }); + } + +; // END var DECLARATIONS + + /** + * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed + * + * @see document.keydown() + */ + function keyDown (evt) { + if (!evt) return true; + var code = evt.keyCode; + if (code < 33) return true; // ignore special keys: ENTER, TAB, etc + + var + PANE = { + 38: "north" // Up Cursor - $.ui.keyCode.UP + , 40: "south" // Down Cursor - $.ui.keyCode.DOWN + , 37: "west" // Left Cursor - $.ui.keyCode.LEFT + , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT + } + , ALT = evt.altKey // no worky! + , SHIFT = evt.shiftKey + , CTRL = evt.ctrlKey + , CURSOR = (CTRL && code >= 37 && code <= 40) + , o, k, m, pane + ; + + if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey + pane = PANE[code]; + else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey + $.each(_c.borderPanes, function (i, p) { // loop each pane to check its hotkey + o = options[p]; + k = o.customHotkey; + m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" + if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches + if (k && code === (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches + pane = p; + return false; // BREAK + } + } + }); + + // validate pane + if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) + return true; + + toggle(pane); + + evt.stopPropagation(); + evt.returnValue = false; // CANCEL key + return false; + }; + + +/* + * ###################################### + * UTILITY METHODS + * called externally or by initButtons + * ###################################### + */ + + /** + * Change/reset a pane overflow setting & zIndex to allow popups/drop-downs to work + * + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function allowOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + ; + + // if pane is already raised, then reset it before doing it again! + // this would happen if allowOverflow is attached to BOTH the pane and an element + if (s.cssSaved) + resetOverflow(pane); // reset previous CSS before continuing + + // if pane is raised by sliding or resizing, or its closed, then abort + if (s.isSliding || s.isResizing || s.isClosed) { + s.cssSaved = false; + return; + } + + var + newCSS = { zIndex: (options.zIndexes.resizer_normal + 1) } + , curCSS = {} + , of = $P.css("overflow") + , ofX = $P.css("overflowX") + , ofY = $P.css("overflowY") + ; + // determine which, if any, overflow settings need to be changed + if (of != "visible") { + curCSS.overflow = of; + newCSS.overflow = "visible"; + } + if (ofX && !ofX.match(/(visible|auto)/)) { + curCSS.overflowX = ofX; + newCSS.overflowX = "visible"; + } + if (ofY && !ofY.match(/(visible|auto)/)) { + curCSS.overflowY = ofX; + newCSS.overflowY = "visible"; + } + + // save the current overflow settings - even if blank! + s.cssSaved = curCSS; + + // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' + $P.css( newCSS ); + + // make sure the zIndex of all other panes is normal + $.each(_c.allPanes, function(i, p) { + if (p != pane) resetOverflow(p); + }); + + }; + /** + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function resetOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + , CSS = s.cssSaved || {} + ; + // reset the zIndex + if (!s.isSliding && !s.isResizing) + $P.css("zIndex", options.zIndexes.pane_normal); + + // reset Overflow - if necessary + $P.css( CSS ); + + // clear var + s.cssSaved = false; + }; + +/* + * ##################### + * CREATE/RETURN LAYOUT + * ##################### + */ + + // validate that container exists + var $N = $(this).eq(0); // FIRST matching Container element + if (!$N.length) { + return _log( options.errors.containerMissing ); + }; + + // Users retrieve Instance of a layout with: $N.layout() OR $N.data("layout") + // return the Instance-pointer if layout has already been initialized + if ($N.data("layoutContainer") && $N.data("layout")) + return $N.data("layout"); // cached pointer + + // init global vars + var + $Ps = {} // Panes x5 - set in initPanes() + , $Cs = {} // Content x5 - set in initPanes() + , $Rs = {} // Resizers x4 - set in initHandles() + , $Ts = {} // Togglers x4 - set in initHandles() + , $Ms = $([]) // Masks - up to 2 masks per pane (IFRAME + DIV) + // aliases for code brevity + , sC = state.container // alias for easy access to 'container dimensions' + , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" + ; + + // create Instance object to expose data & option Properties, and primary action Methods + var Instance = { + // layout data + options: options // property - options hash + , state: state // property - dimensions hash + // object pointers + , container: $N // property - object pointers for layout container + , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center + , contents: $Cs // property - object pointers for ALL Content: contents.north, contents.center + , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north + , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north + // border-pane open/close + , hide: hide // method - ditto + , show: show // method - ditto + , toggle: toggle // method - pass a 'pane' ("north", "west", etc) + , open: open // method - ditto + , close: close // method - ditto + , slideOpen: slideOpen // method - ditto + , slideClose: slideClose // method - ditto + , slideToggle: slideToggle // method - ditto + // pane actions + , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data + , _sizePane: sizePane // method -intended for user by plugins only! + , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' + , sizeContent: sizeContent // method - pass a 'pane' + , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them + , showMasks: showMasks // method - pass a 'pane' OR list of panes - default = all panes with mask option set + , hideMasks: hideMasks // method - ditto' + // pane element methods + , initContent: initContent // method - ditto + , addPane: addPane // method - pass a 'pane' + , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem + , createChildLayout: createChildLayout// method - pass a 'pane' and (optional) layout-options (OVERRIDES options[pane].childOptions + // special pane option setting + , enableClosable: enableClosable // method - pass a 'pane' + , disableClosable: disableClosable // method - ditto + , enableSlidable: enableSlidable // method - ditto + , disableSlidable: disableSlidable // method - ditto + , enableResizable: enableResizable // method - ditto + , disableResizable: disableResizable// method - ditto + // utility methods for panes + , allowOverflow: allowOverflow // utility - pass calling element (this) + , resetOverflow: resetOverflow // utility - ditto + // layout control + , destroy: destroy // method - no parameters + , initPanes: isInitialized // method - no parameters + , resizeAll: resizeAll // method - no parameters + // callback triggering + , runCallbacks: _runCallbacks // method - pass evtName & pane (if a pane-event), eg: trigger("onopen", "west") + // alias collections of options, state and children - created in addPane and extended elsewhere + , hasParentLayout: false // set by initContainer() + , children: children // pointers to child-layouts, eg: Instance.children["west"] + , north: false // alias group: { name: pane, pane: $Ps[pane], options: options[pane], state: state[pane], child: children[pane] } + , south: false // ditto + , west: false // ditto + , east: false // ditto + , center: false // ditto + }; + + // create the border layout NOW + if (_create() === 'cancel') // onload_start callback returned false to CANCEL layout creation + return null; + else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later + return Instance; // return the Instance object + +} + + +/* OLD versions of jQuery only set $.support.boxModel after page is loaded + * so if this is IE, use support.boxModel to test for quirks-mode (ONLY IE changes boxModel). + */ +$(function(){ + var b = $.layout.browser; + if (b.msie) b.boxModel = $.support.boxModel; +}); + + +/** + * jquery.layout.state 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2010 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * @dependancies: $.ui.cookie (above) + * + * @support: http://groups.google.com/group/jquery-ui-layout + */ +/* + * State-management options stored in options.stateManagement, which includes a .cookie hash + * Default options saves ALL KEYS for ALL PANES, ie: pane.size, pane.isClosed, pane.isHidden + * + * // STATE/COOKIE OPTIONS + * @example $(el).layout({ + stateManagement: { + enabled: true + , stateKeys: "east.size,west.size,east.isClosed,west.isClosed" + , cookie: { name: "appLayout", path: "/" } + } + }) + * @example $(el).layout({ stateManagement__enabled: true }) // enable auto-state-management using cookies + * @example $(el).layout({ stateManagement__cookie: { name: "appLayout", path: "/" } }) + * @example $(el).layout({ stateManagement__cookie__name: "appLayout", stateManagement__cookie__path: "/" }) + * + * // STATE/COOKIE METHODS + * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); + * @example myLayout.loadCookie(); + * @example myLayout.deleteCookie(); + * @example var JSON = myLayout.readState(); // CURRENT Layout State + * @example var JSON = myLayout.readCookie(); // SAVED Layout State (from cookie) + * @example var JSON = myLayout.state.stateData; // LAST LOADED Layout State (cookie saved in layout.state hash) + * + * CUSTOM STATE-MANAGEMENT (eg, saved in a database) + * @example var JSON = myLayout.readState( "west.isClosed,north.size,south.isHidden" ); + * @example myLayout.loadState( JSON ); + */ + +/** + * UI COOKIE UTILITY + * + * A $.cookie OR $.ui.cookie namespace *should be standard*, but until then... + * This creates $.ui.cookie so Layout does not need the cookie.jquery.js plugin + * NOTE: This utility is REQUIRED by the layout.state plugin + * + * Cookie methods in Layout are created as part of State Management + */ +if (!$.ui) $.ui = {}; +$.ui.cookie = { + + // cookieEnabled is not in DOM specs, but DOES works in all browsers,including IE6 + acceptsCookies: !!navigator.cookieEnabled + +, read: function (name) { + var + c = document.cookie + , cs = c ? c.split(';') : [] + , pair // loop var + ; + for (var i=0, n=cs.length; i < n; i++) { + pair = $.trim(cs[i]).split('='); // name=value pair + if (pair[0] == name) // found the layout cookie + return decodeURIComponent(pair[1]); + + } + return null; + } + +, write: function (name, val, cookieOpts) { + var + params = '' + , date = '' + , clear = false + , o = cookieOpts || {} + , x = o.expires + ; + if (x && x.toUTCString) + date = x; + else if (x === null || typeof x === 'number') { + date = new Date(); + if (x > 0) + date.setDate(date.getDate() + x); + else { + date.setFullYear(1970); + clear = true; + } + } + if (date) params += ';expires='+ date.toUTCString(); + if (o.path) params += ';path='+ o.path; + if (o.domain) params += ';domain='+ o.domain; + if (o.secure) params += ';secure'; + document.cookie = name +'='+ (clear ? "" : encodeURIComponent( val )) + params; // write or clear cookie + } + +, clear: function (name) { + $.ui.cookie.write(name, '', {expires: -1}); + } + +}; +// if cookie.jquery.js is not loaded, create an alias to replicate it +// this may be useful to other plugins or code dependent on that plugin +if (!$.cookie) $.cookie = function (k, v, o) { + var C = $.ui.cookie; + if (v === null) + C.clear(k); + else if (v === undefined) + return C.read(k); + else + C.write(k, v, o); +}; + + +// tell Layout that the state plugin is available +$.layout.plugins.stateManagement = true; + +// Add State-Management options to layout.defaults +$.layout.config.optionRootKeys.push("stateManagement"); +$.layout.defaults.stateManagement = { + enabled: false // true = enable state-management, even if not using cookies +, autoSave: true // Save a state-cookie when page exits? +, autoLoad: true // Load the state-cookie when Layout inits? + // List state-data to save - must be pane-specific +, stateKeys: "north.size,south.size,east.size,west.size,"+ + "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ + "north.isHidden,south.isHidden,east.isHidden,west.isHidden" +, cookie: { + name: "" // If not specified, will use Layout.name, else just "Layout" + , domain: "" // blank = current domain + , path: "" // blank = current page, '/' = entire website + , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' + , secure: false + } +}; +// Set stateManagement as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("stateManagement"); + +/* + * State Management methods + */ +$.layout.state = { + + /** + * Get the current layout state and save it to a cookie + * + * myLayout.saveCookie( keys, cookieOpts ) + * + * @param {Object} inst + * @param {(string|Array)=} keys + * @param {Object=} cookieOpts + */ + saveCookie: function (inst, keys, cookieOpts) { + var o = inst.options + , oS = o.stateManagement + , oC = $.extend(true, {}, oS.cookie, cookieOpts || null) + , data = inst.state.stateData = inst.readState( keys || oS.stateKeys ) // read current panes-state + ; + $.ui.cookie.write( oC.name || o.name || "Layout", $.layout.state.encodeJSON(data), oC ); + return $.extend(true, {}, data); // return COPY of state.stateData data + } + + /** + * Remove the state cookie + * + * @param {Object} inst + */ +, deleteCookie: function (inst) { + var o = inst.options; + $.ui.cookie.clear( o.stateManagement.cookie.name || o.name || "Layout" ); + } + + /** + * Read & return data from the cookie - as JSON + * + * @param {Object} inst + */ +, readCookie: function (inst) { + var o = inst.options; + var c = $.ui.cookie.read( o.stateManagement.cookie.name || o.name || "Layout" ); + // convert cookie string back to a hash and return it + return c ? $.layout.state.decodeJSON(c) : {}; + } + + /** + * Get data from the cookie and USE IT to loadState + * + * @param {Object} inst + */ +, loadCookie: function (inst) { + var c = $.layout.state.readCookie(inst); // READ the cookie + if (c) { + inst.state.stateData = $.extend(true, {}, c); // SET state.stateData + inst.loadState(c); // LOAD the retrieved state + } + return c; + } + + /** + * Update layout options from the cookie, if one exists + * + * @param {Object} inst + * @param {Object=} stateData + * @param {boolean=} animate + */ +, loadState: function (inst, stateData, animate) { + stateData = $.layout.transformData( stateData ); // panes = default subkey + if ($.isEmptyObject( stateData )) return; + $.extend(true, inst.options, stateData); // update layout options + // if layout has already been initialized, then UPDATE layout state + if (inst.state.initialized) { + var pane, vis, o, s, h, c + , noAnimate = (animate===false) + ; + $.each($.layout.config.borderPanes, function (idx, pane) { + state = inst.state[pane]; + o = stateData[ pane ]; + if (typeof o != 'object') return; // no key, continue + s = o.size; + c = o.initClosed; + h = o.initHidden; + vis = state.isVisible; + // resize BEFORE opening + if (!vis) + inst.sizePane(pane, s, false, false); + if (h === true) inst.hide(pane, noAnimate); + else if (c === false) inst.open (pane, false, noAnimate); + else if (c === true) inst.close(pane, false, noAnimate); + else if (h === false) inst.show (pane, false, noAnimate); + // resize AFTER any other actions + if (vis) + inst.sizePane(pane, s, false, noAnimate); // animate resize if option passed + }); + }; + } + + /** + * Get the *current layout state* and return it as a hash + * + * @param {Object=} inst + * @param {(string|Array)=} keys + */ +, readState: function (inst, keys) { + var + data = {} + , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } + , state = inst.state + , panes = $.layout.config.allPanes + , pair, pane, key, val + ; + if (!keys) keys = inst.options.stateManagement.stateKeys; // if called by user + if ($.isArray(keys)) keys = keys.join(","); + // convert keys to an array and change delimiters from '__' to '.' + keys = keys.replace(/__/g, ".").split(','); + // loop keys and create a data hash + for (var i=0, n=keys.length; i < n; i++) { + pair = keys[i].split("."); + pane = pair[0]; + key = pair[1]; + if ($.inArray(pane, panes) < 0) continue; // bad pane! + val = state[ pane ][ key ]; + if (val == undefined) continue; + if (key=="isClosed" && state[pane]["isSliding"]) + val = true; // if sliding, then *really* isClosed + ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; + } + return data; + } + + /** + * Stringify a JSON hash so can save in a cookie or db-field + */ +, encodeJSON: function (JSON) { + return parse(JSON); + function parse (h) { + var D=[], i=0, k, v, t; // k = key, v = value + for (k in h) { + v = h[k]; + t = typeof v; + if (t == 'string') // STRING - add quotes + v = '"'+ v +'"'; + else if (t == 'object') // SUB-KEY - recurse into it + v = parse(v); + D[i++] = '"'+ k +'":'+ v; + } + return '{'+ D.join(',') +'}'; + }; + } + + /** + * Convert stringified JSON back to a hash object + * @see $.parseJSON(), adding in jQuery 1.4.1 + */ +, decodeJSON: function (str) { + try { return $.parseJSON ? $.parseJSON(str) : window["eval"]("("+ str +")") || {}; } + catch (e) { return {}; } + } + + +, _create: function (inst) { + var _ = $.layout.state; + // ADD State-Management plugin methods to inst + $.extend( inst, { + // readCookie - update options from cookie - returns hash of cookie data + readCookie: function () { return _.readCookie(inst); } + // deleteCookie + , deleteCookie: function () { _.deleteCookie(inst); } + // saveCookie - optionally pass keys-list and cookie-options (hash) + , saveCookie: function (keys, cookieOpts) { return _.saveCookie(inst, keys, cookieOpts); } + // loadCookie - readCookie and use to loadState() - returns hash of cookie data + , loadCookie: function () { return _.loadCookie(inst); } + // loadState - pass a hash of state to use to update options + , loadState: function (stateData, animate) { _.loadState(inst, stateData, animate); } + // readState - returns hash of current layout-state + , readState: function (keys) { return _.readState(inst, keys); } + // add JSON utility methods too... + , encodeJSON: _.encodeJSON + , decodeJSON: _.decodeJSON + }); + + // init state.stateData key, even if plugin is initially disabled + inst.state.stateData = {}; + + // read and load cookie-data per options + var oS = inst.options.stateManagement; + if (oS.enabled) { + if (oS.autoLoad) // update the options from the cookie + inst.loadCookie(); + else // don't modify options - just store cookie data in state.stateData + inst.state.stateData = inst.readCookie(); + } + } + +, _unload: function (inst) { + var oS = inst.options.stateManagement; + if (oS.enabled) { + if (oS.autoSave) // save a state-cookie automatically + inst.saveCookie(); + else // don't save a cookie, but do store state-data in state.stateData key + inst.state.stateData = inst.readState(); + } + } + +}; + +// add state initialization method to Layout's onCreate array of functions +$.layout.onCreate.push( $.layout.state._create ); +$.layout.onUnload.push( $.layout.state._unload ); + + + + +/** + * jquery.layout.buttons 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2010 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * Docs: [ to come ] + * Tips: [ to come ] + */ + +// tell Layout that the state plugin is available +$.layout.plugins.buttons = true; + +// Add buttons options to layout.defaults +$.layout.defaults.autoBindCustomButtons = false; +// Specify autoBindCustomButtons as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("autoBindCustomButtons"); + +/* + * Button methods + */ +$.layout.buttons = { + + /** + * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons + * + * @see _create() + * + * @param {Object} inst Layout Instance object + */ + init: function (inst) { + var pre = "ui-layout-button-" + , layout = inst.options.name || "" + , name; + $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { + $.each($.layout.config.borderPanes, function (ii, pane) { + $("."+pre+action+"-"+pane).each(function(){ + // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' + name = $(this).data("layoutName") || $(this).attr("layoutName"); + if (name == undefined || name === layout) + inst.bindButton(this, action, pane); + }); + }); + }); + } + + /** + * Helper function to validate params received by addButton utilities + * + * Two classes are added to the element, based on the buttonClass... + * The type of button is appended to create the 2nd className: + * - ui-layout-button-pin // action btnClass + * - ui-layout-button-pin-west // action btnClass + pane + * - ui-layout-button-toggle + * - ui-layout-button-open + * - ui-layout-button-close + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * + * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null + */ +, get: function (inst, selector, pane, action) { + var $E = $(selector) + , o = inst.options + , err = o.errors.addButtonError + ; + if (!$E.length) { // element not found + $.layout.msg(err +" "+ o.errors.selector +": "+ selector, true); + } + else if ($.inArray(pane, $.layout.config.borderPanes) < 0) { // invalid 'pane' sepecified + $.layout.msg(err +" "+ o.errors.pane +": "+ pane, true); + $E = $(""); // NO BUTTON + } + else { // VALID + var btn = o[pane].buttonClass +"-"+ action; + $E .addClass( btn +" "+ btn +"-"+ pane ) + .data("layoutName", o.name); // add layout identifier - even if blank! + } + return $E; + } + + + /** + * NEW syntax for binding layout-buttons - will eventually replace addToggle, addOpen, etc. + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} action + * @param {string} pane + */ +, bind: function (inst, selector, action, pane) { + var _ = $.layout.buttons; + switch (action.toLowerCase()) { + case "toggle": _.addToggle (inst, selector, pane); break; + case "open": _.addOpen (inst, selector, pane); break; + case "close": _.addClose (inst, selector, pane); break; + case "pin": _.addPin (inst, selector, pane); break; + case "toggle-slide": _.addToggle (inst, selector, pane, true); break; + case "open-slide": _.addOpen (inst, selector, pane, true); break; + } + return inst; + } + + /** + * Add a custom Toggler button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addToggle: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "toggle") + .click(function(evt){ + inst.toggle(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Open button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addOpen: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "open") + .attr("title", inst.options[pane].tips.Open) + .click(function (evt) { + inst.open(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Close button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + */ +, addClose: function (inst, selector, pane) { + $.layout.buttons.get(inst, selector, pane, "close") + .attr("title", inst.options[pane].tips.Close) + .click(function (evt) { + inst.close(pane); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Pin button for a pane + * + * Four classes are added to the element, based on the paneClass for the associated pane... + * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: + * - ui-layout-pane-pin + * - ui-layout-pane-west-pin + * - ui-layout-pane-pin-up + * - ui-layout-pane-west-pin-up + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. + */ +, addPin: function (inst, selector, pane) { + var _ = $.layout.buttons + , $E = _.get(inst, selector, pane, "pin"); + if ($E.length) { + var s = inst.state[pane]; + $E.click(function (evt) { + _.setPinState(inst, $(this), pane, (s.isSliding || s.isClosed)); + if (s.isSliding || s.isClosed) inst.open( pane ); // change from sliding to open + else inst.close( pane ); // slide-closed + evt.stopPropagation(); + }); + // add up/down pin attributes and classes + _.setPinState(inst, $E, pane, (!s.isClosed && !s.isSliding)); + // add this pin to the pane data so we can 'sync it' automatically + // PANE.pins key is an array so we can store multiple pins for each pane + s.pins.push( selector ); // just save the selector string + } + return inst; + } + + /** + * Change the class of the pin button to make it look 'up' or 'down' + * + * @see addPin(), syncPins() + * + * @param {Object} inst Layout Instance object + * @param {Array.} $Pin The pin-span element in a jQuery wrapper + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin true = set the pin 'down', false = set it 'up' + */ +, setPinState: function (inst, $Pin, pane, doPin) { + var updown = $Pin.attr("pin"); + if (updown && doPin === (updown=="down")) return; // already in correct state + var + o = inst.options[pane] + , pin = o.buttonClass +"-pin" + , side = pin +"-"+ pane + , UP = pin +"-up "+ side +"-up" + , DN = pin +"-down "+side +"-down" + ; + $Pin + .attr("pin", doPin ? "down" : "up") // logic + .attr("title", doPin ? o.tips.Unpin : o.tips.Pin) + .removeClass( doPin ? UP : DN ) + .addClass( doPin ? DN : UP ) + ; + } + + /** + * INTERNAL function to sync 'pin buttons' when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), close() + * + * @param {Object} inst Layout Instance object + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns: function (inst, pane, doPin) { + // REAL METHOD IS _INSIDE_ LAYOUT - THIS IS HERE JUST FOR REFERENCE + $.each(inst.state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(inst, $(selector), pane, doPin); + }); + } + + +, _load: function (inst) { + var _ = $.layout.buttons; + // ADD Button methods to Layout Instance + // Note: sel = jQuery Selector string + $.extend( inst, { + bindButton: function (sel, action, pane) { return _.bind(inst, sel, action, pane); } + // DEPRECATED METHODS + , addToggleBtn: function (sel, pane, slide) { return _.addToggle(inst, sel, pane, slide); } + , addOpenBtn: function (sel, pane, slide) { return _.addOpen(inst, sel, pane, slide); } + , addCloseBtn: function (sel, pane) { return _.addClose(inst, sel, pane); } + , addPinBtn: function (sel, pane) { return _.addPin(inst, sel, pane); } + }); + + // init state array to hold pin-buttons + for (var i=0; i<4; i++) { + var pane = $.layout.config.borderPanes[i]; + inst.state[pane].pins = []; + } + + // auto-init buttons onLoad if option is enabled + if ( inst.options.autoBindCustomButtons ) + _.init(inst); + } + +, _unload: function (inst) { + // TODO: unbind all buttons??? + } + +}; + +// add initialization method to Layout's onLoad array of functions +$.layout.onLoad.push( $.layout.buttons._load ); +//$.layout.onUnload.push( $.layout.buttons._unload ); + + + +/** + * jquery.layout.browserZoom 1.0 + * $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $ + * + * Copyright (c) 2012 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * @todo: Extend logic to handle other problematic zooming in browsers + * @todo: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event + */ + +// tell Layout that the plugin is available +$.layout.plugins.browserZoom = true; + +$.layout.defaults.browserZoomCheckInterval = 1000; +$.layout.optionsMap.layout.push("browserZoomCheckInterval"); + +/* + * browserZoom methods + */ +$.layout.browserZoom = { + + _init: function (inst) { + // abort if browser does not need this check + if ($.layout.browserZoom.ratio() !== false) + $.layout.browserZoom._setTimer(inst); + } + +, _setTimer: function (inst) { + // abort if layout destroyed or browser does not need this check + if (inst.destroyed) return; + var o = inst.options + , s = inst.state + // don't need check if inst has parentLayout, but check occassionally in case parent destroyed! + // MINIMUM 100ms interval, for performance + , ms = inst.hasParentLayout ? 5000 : Math.max( o.browserZoomCheckInterval, 100 ) + ; + // set the timer + setTimeout(function(){ + if (inst.destroyed || !o.resizeWithWindow) return; + var d = $.layout.browserZoom.ratio(); + if (d !== s.browserZoom) { + s.browserZoom = d; + inst.resizeAll(); + } + // set a NEW timeout + $.layout.browserZoom._setTimer(inst); + } + , ms ); + } + +, ratio: function () { + var w = window + , s = screen + , d = document + , dE = d.documentElement || d.body + , b = $.layout.browser + , v = b.version + , r, sW, cW + ; + // we can ignore all browsers that fire window.resize event onZoom + if ((b.msie && v > 8) + || !b.msie + ) return false; // don't need to track zoom + + if (s.deviceXDPI) + return calc(s.deviceXDPI, s.systemXDPI); + // everything below is just for future reference! + if (b.webkit && (r = d.body.getBoundingClientRect)) + return calc((r.left - r.right), d.body.offsetWidth); + if (b.webkit && (sW = w.outerWidth)) + return calc(sW, w.innerWidth); + if ((sW = s.width) && (cW = dE.clientWidth)) + return calc(sW, cW); + return false; // no match, so cannot - or don't need to - track zoom + + function calc (x,y) { return (parseInt(x,10) / parseInt(y,10) * 100).toFixed(); } + } + +}; +// add initialization method to Layout's onLoad array of functions +$.layout.onReady.push( $.layout.browserZoom._init ); + + + +})( jQuery ); \ No newline at end of file diff --git a/latest/api/lib/modernizr.custom.js b/latest/api/lib/modernizr.custom.js new file mode 100644 index 0000000..4688d63 --- /dev/null +++ b/latest/api/lib/modernizr.custom.js @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-inlinesvg + */ +;window.Modernizr=function(a,b,c){function u(a){i.cssText=a}function v(a,b){return u(prefixes.join(a+";")+(b||""))}function w(a,b){return typeof a===b}function x(a,b){return!!~(""+a).indexOf(b)}function y(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:w(f,"function")?f.bind(d||b):f}return!1}var d="2.5.3",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j,k={}.toString,l={svg:"http://www.w3.org/2000/svg"},m={},n={},o={},p=[],q=p.slice,r,s={}.hasOwnProperty,t;!w(s,"undefined")&&!w(s.call,"undefined")?t=function(a,b){return s.call(a,b)}:t=function(a,b){return b in a&&w(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=q.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(q.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(q.call(arguments)))};return e}),m.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==l.svg};for(var z in m)t(m,z)&&(r=z.toLowerCase(),e[r]=m[z](),p.push((e[r]?"":"no-")+r));return u(""),h=j=null,e._version=d,e}(this,this.document); \ No newline at end of file diff --git a/latest/api/lib/navigation-li-a.png b/latest/api/lib/navigation-li-a.png new file mode 100644 index 0000000..9b32288 Binary files /dev/null and b/latest/api/lib/navigation-li-a.png differ diff --git a/latest/api/lib/navigation-li.png b/latest/api/lib/navigation-li.png new file mode 100644 index 0000000..fd0ad06 Binary files /dev/null and b/latest/api/lib/navigation-li.png differ diff --git a/latest/api/lib/object.png b/latest/api/lib/object.png new file mode 100644 index 0000000..ad31279 Binary files /dev/null and b/latest/api/lib/object.png differ diff --git a/latest/api/lib/object_big.png b/latest/api/lib/object_big.png new file mode 100644 index 0000000..67ffca7 Binary files /dev/null and b/latest/api/lib/object_big.png differ diff --git a/latest/api/lib/object_diagram.png b/latest/api/lib/object_diagram.png new file mode 100644 index 0000000..6e9f2f7 Binary files /dev/null and b/latest/api/lib/object_diagram.png differ diff --git a/latest/api/lib/object_to_class_big.png b/latest/api/lib/object_to_class_big.png new file mode 100644 index 0000000..7502942 Binary files /dev/null and b/latest/api/lib/object_to_class_big.png differ diff --git a/latest/api/lib/object_to_trait_big.png b/latest/api/lib/object_to_trait_big.png new file mode 100644 index 0000000..c777bfc Binary files /dev/null and b/latest/api/lib/object_to_trait_big.png differ diff --git a/latest/api/lib/object_to_type_big.png b/latest/api/lib/object_to_type_big.png new file mode 100644 index 0000000..7502942 Binary files /dev/null and b/latest/api/lib/object_to_type_big.png differ diff --git a/latest/api/lib/ownderbg2.gif b/latest/api/lib/ownderbg2.gif new file mode 100644 index 0000000..848dd59 Binary files /dev/null and b/latest/api/lib/ownderbg2.gif differ diff --git a/latest/api/lib/ownerbg.gif b/latest/api/lib/ownerbg.gif new file mode 100644 index 0000000..34a0424 Binary files /dev/null and b/latest/api/lib/ownerbg.gif differ diff --git a/latest/api/lib/ownerbg2.gif b/latest/api/lib/ownerbg2.gif new file mode 100644 index 0000000..2ed33b0 Binary files /dev/null and b/latest/api/lib/ownerbg2.gif differ diff --git a/latest/api/lib/package.png b/latest/api/lib/package.png new file mode 100644 index 0000000..6ea17ac Binary files /dev/null and b/latest/api/lib/package.png differ diff --git a/latest/api/lib/package_big.png b/latest/api/lib/package_big.png new file mode 100644 index 0000000..529aa93 Binary files /dev/null and b/latest/api/lib/package_big.png differ diff --git a/latest/api/lib/packagesbg.gif b/latest/api/lib/packagesbg.gif new file mode 100644 index 0000000..00c3378 Binary files /dev/null and b/latest/api/lib/packagesbg.gif differ diff --git a/latest/api/lib/permalink.png b/latest/api/lib/permalink.png new file mode 100644 index 0000000..d54bc93 Binary files /dev/null and b/latest/api/lib/permalink.png differ diff --git a/latest/api/lib/ref-index.css b/latest/api/lib/ref-index.css new file mode 100644 index 0000000..7d64b9c --- /dev/null +++ b/latest/api/lib/ref-index.css @@ -0,0 +1,30 @@ +body { + font-size: 10pt; + font-family: Arial, sans-serif; +} + +a { + color:#315479; +} + +.letters { + width:100%; + text-align:center; + margin:0.6em; + padding:0.1em; + border-bottom:1px solid gray; +} + +.entry { + border-bottom: 1px solid lightgray; + padding: 5px 0 8px; +} + +.name { + /* background-color:#E5E5E5; */ +} + +.occurrences { + margin-left: 1em; + margin-top: 5px; +} \ No newline at end of file diff --git a/latest/api/lib/remove.png b/latest/api/lib/remove.png new file mode 100644 index 0000000..4625f9d Binary files /dev/null and b/latest/api/lib/remove.png differ diff --git a/latest/api/lib/scheduler.js b/latest/api/lib/scheduler.js new file mode 100644 index 0000000..4417f5b --- /dev/null +++ b/latest/api/lib/scheduler.js @@ -0,0 +1,71 @@ +// © 2010 EPFL/LAMP +// code by Gilles Dubochet + +function Scheduler() { + var scheduler = this; + var resolution = 0; + this.timeout = undefined; + this.queues = new Array(0); // an array of work pacakges indexed by index in the labels table. + this.labels = new Array(0); // an indexed array of labels indexed by priority. This should be short. + this.label = function(name, priority) { + this.name = name; + this.priority = priority; + } + this.work = function(fn, self, args) { + this.fn = fn; + this.self = self; + this.args = args; + } + this.addLabel = function(name, priority) { + var idx = 0; + while (idx < scheduler.queues.length && scheduler.labels[idx].priority <= priority) { idx = idx + 1; } + scheduler.labels.splice(idx, 0, new scheduler.label(name, priority)); + scheduler.queues.splice(idx, 0, new Array(0)); + } + this.clearLabel = function(name) { + var idx = 0; + while (idx < scheduler.queues.length && scheduler.labels[idx].name != name) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.labels[i].name == name) { + scheduler.labels.splice(idx, 1); + scheduler.queues.splice(idx, 1); + } + } + this.nextWork = function() { + var fn = undefined; + var idx = 0; + while (idx < scheduler.queues.length && scheduler.queues[idx].length == 0) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.queues[idx].length > 0) { + var fn = scheduler.queues[idx].shift(); + } + return fn; + } + this.add = function(labelName, fn, self, args) { + var doWork = function() { + scheduler.timeout = setTimeout(function() { + var work = scheduler.nextWork(); + if (work != undefined) { + if (work.args == undefined) { work.args = new Array(0); } + work.fn.apply(work.self, work.args); + doWork(); + } + else { + scheduler.timeout = undefined; + } + }, resolution); + } + var idx = 0; + while (idx < scheduler.labels.length && scheduler.labels[idx].name != labelName) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.labels[idx].name == labelName) { + scheduler.queues[idx].push(new scheduler.work(fn, self, args)); + if (scheduler.timeout == undefined) doWork(); + } + else throw("queue for add is non existant"); + } + this.clear = function(labelName) { + var idx = 0; + while (idx < scheduler.labels.length && scheduler.labels[idx].name != labelName) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.labels[idx].name == labelName) { + scheduler.queues[idx] = new Array(); + } + } +}; diff --git a/latest/api/lib/selected-implicits.png b/latest/api/lib/selected-implicits.png new file mode 100644 index 0000000..bc29efb Binary files /dev/null and b/latest/api/lib/selected-implicits.png differ diff --git a/latest/api/lib/selected-right-implicits.png b/latest/api/lib/selected-right-implicits.png new file mode 100644 index 0000000..8313f49 Binary files /dev/null and b/latest/api/lib/selected-right-implicits.png differ diff --git a/latest/api/lib/selected-right.png b/latest/api/lib/selected-right.png new file mode 100644 index 0000000..04eda2f Binary files /dev/null and b/latest/api/lib/selected-right.png differ diff --git a/latest/api/lib/selected.png b/latest/api/lib/selected.png new file mode 100644 index 0000000..c897652 Binary files /dev/null and b/latest/api/lib/selected.png differ diff --git a/latest/api/lib/selected2-right.png b/latest/api/lib/selected2-right.png new file mode 100644 index 0000000..bf984ef Binary files /dev/null and b/latest/api/lib/selected2-right.png differ diff --git a/latest/api/lib/selected2.png b/latest/api/lib/selected2.png new file mode 100644 index 0000000..a790bb1 Binary files /dev/null and b/latest/api/lib/selected2.png differ diff --git a/latest/api/lib/signaturebg.gif b/latest/api/lib/signaturebg.gif new file mode 100644 index 0000000..b6ac441 Binary files /dev/null and b/latest/api/lib/signaturebg.gif differ diff --git a/latest/api/lib/signaturebg2.gif b/latest/api/lib/signaturebg2.gif new file mode 100644 index 0000000..9aae5ba Binary files /dev/null and b/latest/api/lib/signaturebg2.gif differ diff --git a/latest/api/lib/template.css b/latest/api/lib/template.css new file mode 100644 index 0000000..e84d7c1 --- /dev/null +++ b/latest/api/lib/template.css @@ -0,0 +1,893 @@ +/* Reset */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, pre, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, input, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +table { border-collapse: separate; border-spacing: 0; } +caption, th, td { text-align: left; font-weight: normal; } +table, td, th { vertical-align: middle; } + +blockquote:before, blockquote:after, q:before, q:after { content: ""; } +blockquote, q { quotes: none; } + +a img { border: none; } + +input { border-width: 0px; } + +/* Page */ + +body { + font-family: Arial, sans-serif; + font-size: 10pt; +} + +#footer { + font-size: 9pt; + text-align: center; + color: #858484; + bottom: 0; + width: 100%; + height: 20px; +} + +a[href] { + text-decoration: underline; + color: #315479; +} + +a[href]:hover { + text-decoration: none; +} + +#types ol li > p { + margin-top: 5px; +} + +#types ol li:last-child { + margin-bottom: 5px; +} + +/* +#definition { + padding: 6px 0 6px 6px; + min-height: 59px; + color: white; +} +*/ + +#definition { + display: block-inline; + padding: 5px 0px; + height: 61px; +} + +#definition > img { + float: left; + padding-right: 6px; + padding-left: 5px; +} + +#definition > a > img { + float: left; + padding-right: 6px; + padding-left: 5px; +} + +#definition p + h1 { + margin-top: 3px; +} + +#definition > h1 { +/* padding: 12px 0 12px 6px;*/ + color: white; + text-shadow: 3px black; + text-shadow: black 0px 2px 0px; + font-size: 24pt; + display: inline-block; + overflow: hidden; + margin-top: 10px; +} + +#definition h1 > a { + color: #ffffff; + font-size: 24pt; + text-shadow: black 0px 2px 0px; +/* text-shadow: black 0px 0px 0px;*/ +text-decoration: none; +} + +#definition #owner { + color: #ffffff; + margin-top: 4px; + font-size: 10pt; + overflow: hidden; +} + +#definition #owner > a { + color: #ffffff; +} + +#definition #owner > a:hover { + text-decoration: none; +} + +#signature { + background-image:url('signaturebg2.gif'); + background-color: #d7d7d7; + min-height: 18px; + background-repeat:repeat-x; + font-size: 11.5pt; +/* margin-bottom: 10px;*/ + padding: 8px; +} + +#signature > span.modifier_kind { + display: inline; + float: left; + text-align: left; + width: auto; + position: static; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +#signature > span.symbol { + text-align: left; + display: inline; + padding-left: 0.7em; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +/* Linear super types and known subclasses */ +.hiddenContent { + display: none; +} + +.toggleContainer .toggle { + cursor: pointer; + padding-left: 15px; + background: url("arrow-right.png") no-repeat 0 3px transparent; +} + +.toggleContainer .toggle.open { + background: url("arrow-down.png") no-repeat 0 3px transparent; +} + +.toggleContainer .hiddenContent { + margin-top: 5px; +} + +.value #definition { + background-color: #2C475C; /* blue */ + background-image:url('defbg-blue.gif'); + background-repeat:repeat-x; +} + +.type #definition { + background-color: #316555; /* green */ + background-image:url('defbg-green.gif'); + background-repeat:repeat-x; +} + +#template { + margin-bottom: 50px; +} + +h3 { + color: white; + padding: 5px 10px; + font-size: 12pt; + font-weight: bold; + text-shadow: black 1px 1px 0px; +} + +dl.attributes > dt { + display: block; + float: left; + font-style: italic; +} + +dl.attributes > dt.implicit { + font-weight: bold; + color: darkgreen; +} + +dl.attributes > dd { + display: block; + padding-left: 10em; + margin-bottom: 5px; + min-height: 15px; +} + +#template .values > h3 { + background: #2C475C url("valuemembersbg.gif") repeat-x bottom left; /* grayish blue */ + height: 18px; +} + +#values ol li:last-child { + margin-bottom: 5px; +} + +#template .types > h3 { + background: #316555 url("typebg.gif") repeat-x bottom left; /* green */ + height: 18px; +} + +#constructors > h3 { + background: #4f504f url("constructorsbg.gif") repeat-x bottom left; /* gray */ + height: 18px; +} + +#inheritedMembers > div.parent > h3 { + background: #dadada url("constructorsbg.gif") repeat-x bottom left; /* gray */ + height: 17px; + font-style: italic; + font-size: 12pt; +} + +#inheritedMembers > div.parent > h3 * { + color: white; +} + +#inheritedMembers > div.conversion > h3 { + background: #dadada url("conversionbg.gif") repeat-x bottom left; /* gray */ + height: 17px; + font-style: italic; + font-size: 12pt; +} + +#inheritedMembers > div.conversion > h3 * { + color: white; +} + +#groupedMembers > div.group > h3 { + background: #dadada url("typebg.gif") repeat-x bottom left; /* green */ + height: 17px; + font-size: 12pt; +} + +#groupedMembers > div.group > h3 * { + color: white; +} + + +/* Member cells */ + +div.members > ol { + background-color: white; + list-style: none +} + +div.members > ol > li { + display: block; + border-bottom: 1px solid gray; + padding: 5px 0 6px; + margin: 0 10px; + position: relative; +} + +div.members > ol > li:last-child { + border: 0; + padding: 5px 0 5px; +} + +/* Member signatures */ + +#tooltip { + background: #EFD5B5; + border: 1px solid gray; + color: black; + display: none; + padding: 5px; + position: absolute; +} + +.signature { + font-family: monospace; + font-size: 10pt; + line-height: 18px; + clear: both; + display: block; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +.signature .modifier_kind { + position: absolute; + text-align: right; + width: 14em; +} + +.signature > a > .symbol > .name { + text-decoration: underline; +} + +.signature > a:hover > .symbol > .name { + text-decoration: none; +} + +.signature > a { + text-decoration: none; +} + +.signature > .symbol { + display: block; + padding-left: 14.7em; +} + +.signature .name { + display: inline-block; + font-weight: bold; +} + +.signature .symbol > .implicit { + display: inline-block; + font-weight: bold; + text-decoration: underline; + color: darkgreen; +} + +.signature .symbol .shadowed { + color: darkseagreen; +} + +.signature .symbol .params > .implicit { + font-style: italic; +} + +.signature .symbol .deprecated { + text-decoration: line-through; +} + +.signature .symbol .params .default { + font-style: italic; +} + +#template .signature.closed { + background: url("arrow-right.png") no-repeat 0 5px transparent; + cursor: pointer; +} + +#template .signature.opened { + background: url("arrow-down.png") no-repeat 0 5px transparent; + cursor: pointer; +} + +#template .values .signature .name { + color: darkblue; +} + +#template .types .signature .name { + color: darkgreen; +} + +.full-signature-usecase h4 span { + font-size: 10pt; +} + +.full-signature-usecase > #signature { + padding-top: 0px; +} + +#template .full-signature-usecase > .signature.closed { + background: none; +} + +#template .full-signature-usecase > .signature.opened { + background: none; +} + +.full-signature-block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + margin-bottom: 5px; +} + +#definition .morelinks { + text-align: right; + position: absolute; + top: 40px; + right: 10px; + width: 450px; +} + +#definition .morelinks a { + color: #EBEBEB; +} + +#template .members li .permalink { + position: absolute; + top: 5px; + right: 5px; +} + +#definition .permalink { + position: absolute; + top: 10px; + right: 15px; +} + +#definition .permalink a { + color: #EBEBEB; +} + +#template .members li .permalink, +#definition .permalink a { + display: none; +} + +#template .members li:hover .permalink, +#definition:hover .permalink a { + display: block; +} + +#template .members li .permalink a, +#definition .permalink a { + text-decoration: none; + font-weight: bold; +} + +/* Comments text formating */ + +.cmt {} + +.cmt p { + margin: 0.7em 0; +} + +.cmt p:first-child { + margin-top: 0; +} + +.cmt p:last-child { + margin-bottom: 0; +} + +.cmt h3, +.cmt h4, +.cmt h5, +.cmt h6 { + margin-bottom: 0.7em; + margin-top: 1.4em; + display: block; + text-align: left; + font-weight: bold; +} + +.cmt h3 { + font-size: 14pt; +} + +.cmt h4 { + font-size: 13pt; +} + +.cmt h5 { + font-size: 12pt; +} + +.cmt h6 { + font-size: 11pt; +} + +.cmt pre { + padding: 5px; + border: 1px solid #ddd; + background-color: #eee; + margin: 5px 0; + display: block; + font-family: monospace; +} + +.cmt pre span.ano { + color: blue; +} + +.cmt pre span.cmt { + color: green; +} + +.cmt pre span.kw { + font-weight: bold; +} + +.cmt pre span.lit { + color: #c71585; +} + +.cmt pre span.num { + color: #1e90ff; /* dodgerblue */ +} + +.cmt pre span.std { + color: #008080; /* teal */ +} + +.cmt ul { + display: block; + list-style: circle; + padding-left: 20px; +} + +.cmt ol { + display: block; + padding-left:20px; +} + +.cmt ol.decimal { + list-style: decimal; +} + +.cmt ol.lowerAlpha { + list-style: lower-alpha; +} + +.cmt ol.upperAlpha { + list-style: upper-alpha; +} + +.cmt ol.lowerRoman { + list-style: lower-roman; +} + +.cmt ol.upperRoman { + list-style: upper-roman; +} + +.cmt li { + display: list-item; +} + +.cmt code { + font-family: monospace; +} + +.cmt a { + font-style: bold; +} + +.cmt em, .cmt i { + font-style: italic; +} + +.cmt strong, .cmt b { + font-weight: bold; +} + +/* Comments structured layout */ + +.group > div.comment { + padding-top: 5px; + padding-bottom: 5px; + padding-right: 5px; + padding-left: 5px; + border: 1px solid #ddd; + background-color: #eeeee; + margin-top:5px; + margin-bottom:5px; + margin-right:5px; + margin-left:5px; + display: block; +} + +p.comment { + display: block; + margin-left: 14.7em; + margin-top: 5px; +} + +.shortcomment { + display: block; + margin: 5px 10px; +} + +div.fullcommenttop { + padding: 10px 10px; + background-image:url('fullcommenttopbg.gif'); + background-repeat:repeat-x; +} + +div.fullcomment { + margin: 5px 10px; +} + +#template div.fullcommenttop, +#template div.fullcomment { + display:none; + margin: 5px 0 0 14.7em; +} + +#template .shortcomment { + margin: 5px 0 0 14.7em; + padding: 0; +} + +div.fullcomment .block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + overflow: hidden; +} + +div.fullcommenttop .block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + margin-bottom: 5px +} + +div.fullcomment div.block ol li p, +div.fullcomment div.block ol li { + display:inline +} + +div.fullcomment .block > h5 { + font-style: italic; + font-weight: normal; + display: inline-block; +} + +div.fullcomment .comment { + margin: 5px 0 10px; +} + +div.fullcommenttop .comment:last-child, +div.fullcomment .comment:last-child { + margin-bottom: 0; +} + +div.fullcommenttop dl.paramcmts { + margin-bottom: 0.8em; + padding-bottom: 0.8em; +} + +div.fullcommenttop dl.paramcmts > dt, +div.fullcomment dl.paramcmts > dt { + display: block; + float: left; + font-weight: bold; + min-width: 70px; +} + +div.fullcommenttop dl.paramcmts > dd, +div.fullcomment dl.paramcmts > dd { + display: block; + padding-left: 10px; + margin-bottom: 5px; + margin-left: 70px; + min-height: 15px; +} + +/* Members filter tool */ + +#textfilter { + position: relative; + display: block; + height: 20px; + margin-bottom: 5px; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 23px; + width: 21px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 20px; + padding: 1px; + font-weight: bold; + color: #000000; + background: #ffffff url("filterboxbarbg.png") repeat-x top left; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 23px; + width: 21px; + background: url("filter_box_right.png"); +} + +#mbrsel { + padding: 5px 10px; + background-color: #ededee; /* light gray */ + background-image:url('filterboxbg.gif'); + background-repeat:repeat-x; + font-size: 9.5pt; + display: block; + margin-top: 1em; +/* margin-bottom: 1em; */ +} + +#mbrsel > div { + margin-bottom: 5px; +} + +#mbrsel > div:last-child { + margin-bottom: 0; +} + +#mbrsel > div > span.filtertype { + padding: 4px; + margin-right: 5px; + float: left; + display: inline-block; + color: #000000; + font-weight: bold; + text-shadow: white 0px 1px 0px; + width: 4.5em; +} + +#mbrsel > div > ol { + display: inline-block; +} + +#mbrsel > div > a { + position:relative; + top: -8px; + font-size: 11px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol#linearization { + display: table; + margin-left: 70px; +} + +#mbrsel > div > ol#linearization > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol#linearization > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol#implicits { + display: table; + margin-left: 70px; +} + +#mbrsel > div > ol#implicits > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right-implicits.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol#implicits > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected-implicits.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol > li { +/* padding: 3px 10px;*/ + line-height: 16pt; + display: inline-block; + cursor: pointer; +} + +#mbrsel > div > ol > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol > li.out { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; +} + +#mbrsel > div > ol > li.out > span{ + color: #747474; +/* background-color: #999; */ + float: left; + padding: 1px 0 1px 10px; +/* background: url(unselected.png) no-repeat;*/ + background-position: 0px -1px; + text-shadow: #ffffff 0 1px 0; +} +/* +#mbrsel .hideall { + color: #4C4C4C; + line-height: 16px; + font-weight: bold; +} + +#mbrsel .hideall span { + color: #4C4C4C; + font-weight: bold; +} + +#mbrsel .showall { + color: #4C4C4C; + line-height: 16px; + font-weight: bold; +} + +#mbrsel .showall span { + color: #4C4C4C; + font-weight: bold; +}*/ + +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.badge-red { + background-color: #b94a48; +} diff --git a/latest/api/lib/template.js b/latest/api/lib/template.js new file mode 100644 index 0000000..798a2d4 --- /dev/null +++ b/latest/api/lib/template.js @@ -0,0 +1,500 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Pedro Furlanetto and Marcin Kubala + +$(document).ready(function(){ + + var controls = { + visibility: { + publicOnly: $("#visbl").find("> ol > li.public"), + all: $("#visbl").find("> ol > li.all") + } + }; + + // Escapes special characters and returns a valid jQuery selector + function escapeJquery(str){ + return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=<>\|])/g, '\\$1'); + } + + function toggleVisibilityFilter(ctrlToEnable, ctrToDisable) { + if (ctrlToEnable.hasClass("out")) { + ctrlToEnable.removeClass("out").addClass("in"); + ctrToDisable.removeClass("in").addClass("out"); + filter(); + } + } + + controls.visibility.publicOnly.click(function () { + toggleVisibilityFilter(controls.visibility.publicOnly, controls.visibility.all); + }); + + controls.visibility.all.click(function () { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + }); + + function exposeMember(jqElem) { + var jqElemParent = jqElem.parent(), + parentName = jqElemParent.attr("name"), + linearizationName = /^([^#]*)(#.*)?$/gi.exec(parentName)[1]; + + // switch visibility filter if necessary + if (jqElemParent.attr("visbl") == "prt") { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + } + + // toggle appropriate linearization buttons + if (linearizationName) { + $("#linearization li.out[name='" + linearizationName + "']").removeClass("out").addClass("in"); + } + + filter(); + window.scrollTo(0, 0); + jqElemParent.effect("highlight", {color: "#FFCC85"}, 3000); + $('html,body').animate({scrollTop: jqElemParent.offset().top}, 1000); + } + + var isHiddenClass = function (name) { + return name == 'scala.Any' || + name == 'scala.AnyRef'; + }; + + var isHidden = function (elem) { + return $(elem).attr("data-hidden") == 'true'; + }; + + $("#linearization li:gt(0)").filter(function(){ + return isHiddenClass($(this).attr("name")); + }).removeClass("in").addClass("out"); + + $("#implicits li").filter(function(){ + return isHidden(this); + }).removeClass("in").addClass("out"); + + // Pre-filter members + filter(); + + // Member filter box + var input = $("#textfilter input"); + input.bind("keyup", function(event) { + + switch ( event.keyCode ) { + + case 27: // escape key + input.val(""); + filter(true); + break; + + case 38: // up + input.val(""); + filter(false); + window.scrollTo(0, $("body").offset().top); + input.focus(); + break; + + case 33: //page up + input.val(""); + filter(false); + break; + + case 34: //page down + input.val(""); + filter(false); + break; + + default: + window.scrollTo(0, $("#mbrsel").offset().top); + filter(true); + break; + + } + }); + input.focus(function(event) { + input.select(); + }); + $("#textfilter > .post").click(function() { + $("#textfilter input").attr("value", ""); + filter(); + }); + $(document).keydown(function(event) { + + if (event.keyCode == 9) { // tab + $("#index-input", window.parent.document).focus(); + input.attr("value", ""); + return false; + } + }); + + $("#linearization li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } + else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#implicits li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } + else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#mbrsel > div[id=ancestors] > ol > li.hideall").click(function() { + $("#linearization li.in").removeClass("in").addClass("out"); + $("#linearization li:first").removeClass("out").addClass("in"); + $("#implicits li.in").removeClass("in").addClass("out"); + + if ($(this).hasClass("out") && $("#mbrsel > div[id=ancestors] > ol > li.showall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div[id=ancestors] > ol > li.showall").removeClass("in").addClass("out"); + } + + filter(); + }) + $("#mbrsel > div[id=ancestors] > ol > li.showall").click(function() { + var filteredLinearization = + $("#linearization li.out").filter(function() { + return ! isHiddenClass($(this).attr("name")); + }); + filteredLinearization.removeClass("out").addClass("in"); + + var filteredImplicits = + $("#implicits li.out").filter(function() { + return ! isHidden(this); + }); + filteredImplicits.removeClass("out").addClass("in"); + + if ($(this).hasClass("out") && $("#mbrsel > div[id=ancestors] > ol > li.hideall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div[id=ancestors] > ol > li.hideall").removeClass("in").addClass("out"); + } + + filter(); + }); + $("#order > ol > li.alpha").click(function() { + if ($(this).hasClass("out")) { + orderAlpha(); + } + }) + $("#order > ol > li.inherit").click(function() { + if ($(this).hasClass("out")) { + orderInherit(); + } + }); + $("#order > ol > li.group").click(function() { + if ($(this).hasClass("out")) { + orderGroup(); + } + }); + $("#groupedMembers").hide(); + + initInherit(); + + // Create tooltips + $(".extype").add(".defval").tooltip({ + tip: "#tooltip", + position: "top center", + predelay: 500, + onBeforeShow: function(ev) { + $(this.getTip()).text(this.getTrigger().attr("name")); + } + }); + + /* Add toggle arrows */ + //var docAllSigs = $("#template li").has(".fullcomment").find(".signature"); + // trying to speed things up a little bit + var docAllSigs = $("#template li[fullComment=yes] .signature"); + + function commentToggleFct(signature){ + var parent = signature.parent(); + var shortComment = $(".shortcomment", parent); + var fullComment = $(".fullcomment", parent); + var vis = $(":visible", fullComment); + signature.toggleClass("closed").toggleClass("opened"); + if (vis.length > 0) { + shortComment.slideDown(100); + fullComment.slideUp(100); + } + else { + shortComment.slideUp(100); + fullComment.slideDown(100); + } + }; + docAllSigs.addClass("closed"); + docAllSigs.click(function() { + commentToggleFct($(this)); + }); + + /* Linear super types and known subclasses */ + function toggleShowContentFct(e){ + e.toggleClass("open"); + var content = $(".hiddenContent", e.parent().get(0)); + if (content.is(':visible')) { + content.slideUp(100); + } + else { + content.slideDown(100); + } + }; + + $(".toggle:not(.diagram-link)").click(function() { + toggleShowContentFct($(this)); + }); + + // Set parent window title + windowTitle(); + + if ($("#order > ol > li.group").length == 1) { orderGroup(); }; + + function findElementByHash(locationHash) { + var temp = locationHash.replace('#', ''); + var memberSelector = '#' + escapeJquery(temp); + return $(memberSelector); + } + + // highlight and jump to selected member + if (window.location.hash) { + var jqElem = findElementByHash(window.location.hash); + if (jqElem.length > 0) { + exposeMember(jqElem); + } + } +}); + +function orderAlpha() { + $("#order > ol > li.alpha").removeClass("out").addClass("in"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div[id=ancestors]").show(); + filter(); +}; + +function orderInherit() { + $("#order > ol > li.inherit").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").show(); + $("#template > div.conversion").show(); + $("#mbrsel > div[id=ancestors]").hide(); + filter(); +}; + +function orderGroup() { + $("#order > ol > li.group").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div[id=ancestors]").show(); + filter(); +}; + +/** Prepares the DOM for inheritance-based display. To do so it will: + * - hide all statically-generated parents headings; + * - copy all members from the value and type members lists (flat members) to corresponding lists nested below the + * parent headings (inheritance-grouped members); + * - initialises a control variable used by the filter method to control whether filtering happens on flat members + * or on inheritance-grouped members. */ +function initInherit() { + // inheritParents is a map from fully-qualified names to the DOM node of parent headings. + var inheritParents = new Object(); + var groupParents = new Object(); + $("#inheritedMembers > div.parent").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#inheritedMembers > div.conversion").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#groupedMembers > div.group").each(function(){ + groupParents[$(this).attr("name")] = $(this); + }); + + $("#types > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var types = $("> .types > ol", inheritParent); + if (types.length == 0) { + inheritParent.append("

      Type Members

        "); + types = $("> .types > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var types = $("> .types > ol", groupParent); + if (types.length == 0) { + groupParent.append("
          "); + types = $("> .types > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + }); + + $("#values > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var values = $("> .values > ol", inheritParent); + if (values.length == 0) { + inheritParent.append("

          Value Members

            "); + values = $("> .values > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var values = $("> .values > ol", groupParent); + if (values.length == 0) { + groupParent.append("
              "); + values = $("> .values > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + }); + $("#inheritedMembers > div.parent").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#inheritedMembers > div.conversion").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#groupedMembers > div.group").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); +}; + +/* filter used to take boolean scrollToMember */ +function filter() { + var query = $.trim($("#textfilter input").val()).toLowerCase(); + query = query.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&").replace(/\s+/g, "|"); + var queryRegExp = new RegExp(query, "i"); + var privateMembersHidden = $("#visbl > ol > li.public").hasClass("in"); + var orderingAlphabetic = $("#order > ol > li.alpha").hasClass("in"); + var orderingInheritance = $("#order > ol > li.inherit").hasClass("in"); + var orderingGroups = $("#order > ol > li.group").hasClass("in"); + var hiddenSuperclassElementsLinearization = orderingInheritance ? $("#linearization > li:gt(0)") : $("#linearization > li.out"); + var hiddenSuperclassesLinearization = hiddenSuperclassElementsLinearization.map(function() { + return $(this).attr("name"); + }).get(); + var hiddenSuperclassElementsImplicits = orderingInheritance ? $("#implicits > li") : $("#implicits > li.out"); + var hiddenSuperclassesImplicits = hiddenSuperclassElementsImplicits.map(function() { + return $(this).attr("name"); + }).get(); + + var hideInheritedMembers; + + if (orderingAlphabetic) { + $("#allMembers").show(); + $("#inheritedMembers").hide(); + $("#groupedMembers").hide(); + hideInheritedMembers = true; + $("#allMembers > .members").each(filterFunc); + } else if (orderingGroups) { + $("#groupedMembers").show(); + $("#inheritedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = true; + $("#groupedMembers > .group > .members").each(filterFunc); + $("#groupedMembers > div.group").each(function() { + $(this).show(); + if ($("> div.members", this).not(":hidden").length == 0) { + $(this).hide(); + } else { + $(this).show(); + } + }); + } else if (orderingInheritance) { + $("#inheritedMembers").show(); + $("#groupedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = false; + $("#inheritedMembers > .parent > .members").each(filterFunc); + $("#inheritedMembers > .conversion > .members").each(filterFunc); + } + + + function filterFunc() { + var membersVisible = false; + var members = $(this); + members.find("> ol > li").each(function() { + var mbr = $(this); + if (privateMembersHidden && mbr.attr("visbl") == "prt") { + mbr.hide(); + return; + } + var name = mbr.attr("name"); + // Owner filtering must not happen in "inherited from" member lists + if (hideInheritedMembers) { + var ownerIndex = name.indexOf("#"); + if (ownerIndex < 0) { + ownerIndex = name.lastIndexOf("."); + } + var owner = name.slice(0, ownerIndex); + for (var i = 0; i < hiddenSuperclassesLinearization.length; i++) { + if (hiddenSuperclassesLinearization[i] == owner) { + mbr.hide(); + return; + } + }; + for (var i = 0; i < hiddenSuperclassesImplicits.length; i++) { + if (hiddenSuperclassesImplicits[i] == owner) { + mbr.hide(); + return; + } + }; + } + if (query && !(queryRegExp.test(name) || queryRegExp.test(this.mbrText))) { + mbr.hide(); + return; + } + mbr.show(); + membersVisible = true; + }); + + if (membersVisible) + members.show(); + else + members.hide(); + }; + + return false; +}; + +function windowTitle() +{ + try { + parent.document.title=document.title; + } + catch(e) { + // Chrome doesn't allow settings the parent's title when + // used on the local file system. + } +}; diff --git a/latest/api/lib/tools.tooltip.js b/latest/api/lib/tools.tooltip.js new file mode 100644 index 0000000..0af34ec --- /dev/null +++ b/latest/api/lib/tools.tooltip.js @@ -0,0 +1,14 @@ +/* + * tools.tooltip 1.1.3 - Tooltips done right. + * + * Copyright (c) 2009 Tero Piirainen + * http://flowplayer.org/tools/tooltip.html + * + * Dual licensed under MIT and GPL 2+ licenses + * http://www.opensource.org/licenses + * + * Launch : November 2008 + * Date: ${date} + * Revision: ${revision} + */ +(function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery); \ No newline at end of file diff --git a/latest/api/lib/trait.png b/latest/api/lib/trait.png new file mode 100644 index 0000000..fb961a2 Binary files /dev/null and b/latest/api/lib/trait.png differ diff --git a/latest/api/lib/trait_big.png b/latest/api/lib/trait_big.png new file mode 100644 index 0000000..625d925 Binary files /dev/null and b/latest/api/lib/trait_big.png differ diff --git a/latest/api/lib/trait_diagram.png b/latest/api/lib/trait_diagram.png new file mode 100644 index 0000000..8898325 Binary files /dev/null and b/latest/api/lib/trait_diagram.png differ diff --git a/latest/api/lib/trait_to_object_big.png b/latest/api/lib/trait_to_object_big.png new file mode 100644 index 0000000..d0cd7fd Binary files /dev/null and b/latest/api/lib/trait_to_object_big.png differ diff --git a/latest/api/lib/type.png b/latest/api/lib/type.png new file mode 100644 index 0000000..6c6e1fe Binary files /dev/null and b/latest/api/lib/type.png differ diff --git a/latest/api/lib/type_big.png b/latest/api/lib/type_big.png new file mode 100644 index 0000000..04c8794 Binary files /dev/null and b/latest/api/lib/type_big.png differ diff --git a/latest/api/lib/type_diagram.png b/latest/api/lib/type_diagram.png new file mode 100644 index 0000000..d815252 Binary files /dev/null and b/latest/api/lib/type_diagram.png differ diff --git a/latest/api/lib/type_to_object_big.png b/latest/api/lib/type_to_object_big.png new file mode 100644 index 0000000..ef2615b Binary files /dev/null and b/latest/api/lib/type_to_object_big.png differ diff --git a/latest/api/lib/typebg.gif b/latest/api/lib/typebg.gif new file mode 100644 index 0000000..2fcc77b Binary files /dev/null and b/latest/api/lib/typebg.gif differ diff --git a/latest/api/lib/unselected.png b/latest/api/lib/unselected.png new file mode 100644 index 0000000..d5ac639 Binary files /dev/null and b/latest/api/lib/unselected.png differ diff --git a/latest/api/lib/valuemembersbg.gif b/latest/api/lib/valuemembersbg.gif new file mode 100644 index 0000000..2a94931 Binary files /dev/null and b/latest/api/lib/valuemembersbg.gif differ diff --git a/latest/api/package.html b/latest/api/package.html new file mode 100644 index 0000000..b3d285b --- /dev/null +++ b/latest/api/package.html @@ -0,0 +1,122 @@ + + + + root - _root_ + + + + + + + + + + + + + + + +
              + Package + +

              root package

              + + Permalink + + +
              + +

              + + + package + + + root + +

              + +
              + + +
              +
              + + +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + + package + + + scaldi + +

                + + Permalink + + +

                Scaldi - is Scala dependency injection library.

                Scaldi - is Scala dependency injection library. Basically Scala already have everything you need for dependency +injection. But still some things can be made easier. Goal of the project is to provide more standard and easy way +to make dependency injection in Scala projects consuming power of the Scala language. With Scaldi you can define +your application modules in pure Scala without any annotations or XML.

                For more information see: http://olegilyenko.github.com/scaldi/Scaldi.html +

                +
              +
              + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/AndCondition.html b/latest/api/scaldi/AndCondition.html new file mode 100644 index 0000000..53343a2 --- /dev/null +++ b/latest/api/scaldi/AndCondition.html @@ -0,0 +1,546 @@ + + + + AndCondition - scaldi.AndCondition + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              AndCondition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + AndCondition(conditions: List[Condition]) extends Condition with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Condition, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. AndCondition
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Condition
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + AndCondition(conditions: List[Condition]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(otherCond: Condition): AndCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + + val + + + conditions: List[Condition] + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + or(otherCond: Condition): OrCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              16. + + +

                + + + def + + + satisfies(identifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                AndCondition → Condition
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + unary_!: NotCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Condition

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Args$.html b/latest/api/scaldi/Args$.html new file mode 100644 index 0000000..3807bde --- /dev/null +++ b/latest/api/scaldi/Args$.html @@ -0,0 +1,500 @@ + + + + Args - scaldi.Args + + + + + + + + + + + + + + + +
              + Object +

              scaldi

              +

              Args

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Args + +

              + +

              Factory for creating injector from command line arguments +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Args
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(args: Array[String]): Injector + +

                + + Permalink + + +

                Factory method used to initialize a Module with binded command line arguments

                Factory method used to initialize a Module with binded command line arguments

                args

                array that will be binded to 'args identifier

                returns

                new DynamicModule with a binding defined for command line arguments

                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindHelper.html b/latest/api/scaldi/BindHelper.html new file mode 100644 index 0000000..59574f6 --- /dev/null +++ b/latest/api/scaldi/BindHelper.html @@ -0,0 +1,773 @@ + + + + BindHelper - scaldi.BindHelper + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              BindHelper

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + BindHelper[R] extends CanBeIdentified[BindHelper[R]] with CanBeConditional[BindHelper[R]] + +

              + +
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindHelper
              2. CanBeConditional
              3. CanBeIdentified
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + BindHelper(onBound: (BindHelper[R], BoundHelper[_]) ⇒ Unit) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(ids: Identifier*): BindHelper[R] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              5. + + +

                + + + def + + + as(ids: Identifier*): BindHelper[R] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + var + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +
                Definition Classes
                CanBeConditional
                +
              9. + + +

                + + + var + + + createFn: Option[Option[() ⇒ Any]] + +

                + + Permalink + + + +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + + def + + + identifiedBy(ids: Identifier*): BindHelper[R] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              16. + + +

                + + + var + + + identifiers: List[Identifier] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              17. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + + def + + + to[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + + +
              23. + + +

                + + + def + + + to[T <: R](provider: WordBindingProvider[T])(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + + +
              24. + + +

                + + + def + + + to(none: None.type): BoundHelper[R] + +

                + + Permalink + + + +
              25. + + +

                + + + def + + + toNonLazy[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + + +
              26. + + +

                + + + def + + + toProvider[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + + +
              27. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              28. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              29. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              30. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              31. + + +

                + + + def + + + when(cond: ⇒ Condition): CanBeConditional[BindHelper[R]] with BindHelper[R] + +

                + + Permalink + + +
                Definition Classes
                CanBeConditional
                +
              +
              + + + +
              +

              Deprecated Value Members

              +
              1. + + +

                + + + def + + + in[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5) in variant is deprecated in favor of to syntax

                +
              2. + + +

                + + + def + + + inNonLazy[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5) in variant is deprecated in favor of to syntax

                +
              3. + + +

                + + + def + + + inProvider[T <: R](fn: ⇒ T)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BoundHelper[T] + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5) in variant is deprecated in favor of to syntax

                +
              +
              +
              + +
              +
              +

              Inherited from CanBeConditional[BindHelper[R]]

              +
              +

              Inherited from CanBeIdentified[BindHelper[R]]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Binding$.html b/latest/api/scaldi/Binding$.html new file mode 100644 index 0000000..44d336e --- /dev/null +++ b/latest/api/scaldi/Binding$.html @@ -0,0 +1,505 @@ + + + + Binding - scaldi.Binding + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi

              +

              Binding

              + Related Docs: + trait Binding + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Binding + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Binding
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(lifecycleManager: LifecycleManager, binding: BindingWithLifecycle): Binding + +

                + + Permalink + + +

                Standard factory method for binding that from LifecycleManager and +BindingWithLifecycle creates new Binding +

                Standard factory method for binding that from LifecycleManager and +BindingWithLifecycle creates new Binding +

                lifecycleManager

                LifecycleManager that will handle initialization / destruction events for binding

                binding

                BindingWithLifecycle actual binding

                returns

                a new binding (without lifecycle) which delegates all method calls to the provided binding

                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Binding.html b/latest/api/scaldi/Binding.html new file mode 100644 index 0000000..a2351fe --- /dev/null +++ b/latest/api/scaldi/Binding.html @@ -0,0 +1,604 @@ + + + + Binding - scaldi.Binding + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi

              +

              Binding

              + Related Docs: + object Binding + | package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Binding extends Identifiable + +

              + +

              Binding is defined in a Module as Type -> instance relationship (sometimes +with additional identifiers). +I can be injected in classes where implicit Injector is available. +Binding can be defined (containing a value) or undefined. +

              + Linear Supertypes +
              Identifiable, AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Binding
              2. Identifiable
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                Stores condition for binding.

                Stores condition for binding. +Used for conditional binding

                returns

                Option with function returning condition

                Definition Classes
                Identifiable
                +
              2. + + +

                + + abstract + def + + + get: Option[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined

                returns

                Option with binding's value (or None if the binding is undefined)

                +
              3. + + +

                + + abstract + def + + + identifiers: List[Identifier] + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default

                Specifies if binding is cacheable +False by default

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                Identifiable
                +
              12. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              13. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingException.html b/latest/api/scaldi/BindingException.html new file mode 100644 index 0000000..bcdf05d --- /dev/null +++ b/latest/api/scaldi/BindingException.html @@ -0,0 +1,731 @@ + + + + BindingException - scaldi.BindingException + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              BindingException

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + BindingException extends RuntimeException + +

              + +
              + Linear Supertypes +
              RuntimeException, Exception, Throwable, Serializable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingException
              2. RuntimeException
              3. Exception
              4. Throwable
              5. Serializable
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + BindingException(message: String) + +

                + + Permalink + + + +
              2. + + +

                + + + new + + + BindingException(message: String, cause: Throwable) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + addSuppressed(arg0: Throwable): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + fillInStackTrace(): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + + def + + + getCause(): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + getLocalizedMessage(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              14. + + +

                + + + def + + + getMessage(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              15. + + +

                + + + def + + + getStackTrace(): Array[StackTraceElement] + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              16. + + +

                + + final + def + + + getSuppressed(): Array[Throwable] + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              17. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + + def + + + initCause(arg0: Throwable): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              19. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              20. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + printStackTrace(arg0: PrintWriter): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              24. + + +

                + + + def + + + printStackTrace(arg0: PrintStream): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              25. + + +

                + + + def + + + printStackTrace(): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              26. + + +

                + + + def + + + setStackTrace(arg0: Array[StackTraceElement]): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              27. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable → AnyRef → Any
                +
              29. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              30. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              31. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from RuntimeException

              +
              +

              Inherited from Exception

              +
              +

              Inherited from Throwable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingLifecycle$.html b/latest/api/scaldi/BindingLifecycle$.html new file mode 100644 index 0000000..9356c16 --- /dev/null +++ b/latest/api/scaldi/BindingLifecycle$.html @@ -0,0 +1,505 @@ + + + + BindingLifecycle - scaldi.BindingLifecycle + + + + + + + + + + + + + + + + + +

              + + + object + + + BindingLifecycle extends Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingLifecycle
              2. Serializable
              3. Serializable
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + def + + + empty[T]: BindingLifecycle[T] + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingLifecycle.html b/latest/api/scaldi/BindingLifecycle.html new file mode 100644 index 0000000..e79f5f5 --- /dev/null +++ b/latest/api/scaldi/BindingLifecycle.html @@ -0,0 +1,529 @@ + + + + BindingLifecycle - scaldi.BindingLifecycle + + + + + + + + + + + + + + + + + +

              + + + case class + + + BindingLifecycle[-T](initialize: Option[(T) ⇒ Unit] = None, destroy: Option[(T) ⇒ Unit] = None) extends Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingLifecycle
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + BindingLifecycle(initialize: Option[(T) ⇒ Unit] = None, destroy: Option[(T) ⇒ Unit] = None) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + destroy: Option[(T) ⇒ Unit] + +

                + + Permalink + + + +
              7. + + +

                + + + def + + + destroyObject(obj: T): Unit + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + val + + + initialize: Option[(T) ⇒ Unit] + +

                + + Permalink + + + +
              12. + + +

                + + + def + + + initializeObject(obj: T): Unit + +

                + + Permalink + + + +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingProvider.html b/latest/api/scaldi/BindingProvider.html new file mode 100644 index 0000000..c7ed55c --- /dev/null +++ b/latest/api/scaldi/BindingProvider.html @@ -0,0 +1,505 @@ + + + + BindingProvider - scaldi.BindingProvider + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              BindingProvider

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + BindingProvider extends AnyRef + +

              + +
              Annotations
              + @deprecated + +
              Deprecated

              (Since version 0.5) BindingProvider is deprecated and will be removed soon. As an alternative you can use ImmutableWrapper injector to define an immutability boundary in composition or create your own injector that is marked as ImmutableInjector.

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingProvider
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBinding(name: String, tpe: scala.reflect.api.JavaUniverse.Type): Binding + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingWithLifecycle$.html b/latest/api/scaldi/BindingWithLifecycle$.html new file mode 100644 index 0000000..0b48bba --- /dev/null +++ b/latest/api/scaldi/BindingWithLifecycle$.html @@ -0,0 +1,501 @@ + + + + BindingWithLifecycle - scaldi.BindingWithLifecycle + + + + + + + + + + + + + + + + + +

              + + + object + + + BindingWithLifecycle + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingWithLifecycle
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(binding: Binding): BindingWithLifecycle { val lifecycle: scaldi.BindingLifecycle[Any] } + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BindingWithLifecycle.html b/latest/api/scaldi/BindingWithLifecycle.html new file mode 100644 index 0000000..ed2d2ad --- /dev/null +++ b/latest/api/scaldi/BindingWithLifecycle.html @@ -0,0 +1,618 @@ + + + + BindingWithLifecycle - scaldi.BindingWithLifecycle + + + + + + + + + + + + + + + + + +

              + + + trait + + + BindingWithLifecycle extends Identifiable + +

              + +

              Bindings with lifecycle may have initialization and destruction handlers +

              + Linear Supertypes +
              Identifiable, AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BindingWithLifecycle
              2. Identifiable
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                Stores condition for binding.

                Stores condition for binding. +Used for conditional binding

                returns

                Option with function returning condition

                Definition Classes
                Identifiable
                +
              2. + + +

                + + abstract + def + + + get(lifecycleManager: LifecycleManager): Option[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined

                lifecycleManager

                LifecycleManager that will handle the destruction of the binding at the end of the lifecycle

                returns

                Option with binding's value (or None if the binding is undefined)

                +
              3. + + +

                + + abstract + def + + + identifiers: List[Identifier] + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              4. + + +

                + + abstract + def + + + lifecycle: BindingLifecycle[Any] + +

                + + Permalink + + +

                Bindings with lifecycle should have BindingLifecycle attached to them

                Bindings with lifecycle should have BindingLifecycle attached to them

                returns

                BindingLifecycle current binding's lifecycle

                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default

                Specifies if binding is cacheable +False by default

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                Identifiable
                +
              12. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              13. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/BoundHelper.html b/latest/api/scaldi/BoundHelper.html new file mode 100644 index 0000000..5ce42e2 --- /dev/null +++ b/latest/api/scaldi/BoundHelper.html @@ -0,0 +1,678 @@ + + + + BoundHelper - scaldi.BoundHelper + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              BoundHelper

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + BoundHelper[D] extends CanBeIdentified[BoundHelper[D]] with CanBeConditional[BoundHelper[D]] with CanHaveLifecycle[BoundHelper[D], D] + +

              + +
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. BoundHelper
              2. CanHaveLifecycle
              3. CanBeConditional
              4. CanBeIdentified
              5. AnyRef
              6. Any
              7. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + BoundHelper(bindingFn: (List[Identifier], Option[() ⇒ Condition], BindingLifecycle[Any]) ⇒ BindingWithLifecycle, initialIdentifiers: List[Identifier], initialCondition: Option[() ⇒ Condition], bindingType: Option[scala.reflect.api.JavaUniverse.Type]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(ids: Identifier*): BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              5. + + +

                + + + def + + + as(ids: Identifier*): BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + var + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +
                Definition Classes
                CanBeConditional
                +
              9. + + +

                + + + def + + + destroyWith(destroyFn: (D) ⇒ Unit): CanHaveLifecycle[BoundHelper[D], D] with BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanHaveLifecycle
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding: BindingWithLifecycle + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + identifiedBy(ids: Identifier*): BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              17. + + +

                + + + var + + + identifiers: List[Identifier] + +

                + + Permalink + + +
                Definition Classes
                CanBeIdentified
                +
              18. + + +

                + + + def + + + initWith(initFn: (D) ⇒ Unit): CanHaveLifecycle[BoundHelper[D], D] with BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanHaveLifecycle
                +
              19. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              20. + + +

                + + + var + + + lifecycle: BindingLifecycle[D] + +

                + + Permalink + + +
                Definition Classes
                CanHaveLifecycle
                +
              21. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              24. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              25. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              26. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              27. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              28. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              29. + + +

                + + + def + + + when(cond: ⇒ Condition): CanBeConditional[BoundHelper[D]] with BoundHelper[D] + +

                + + Permalink + + +
                Definition Classes
                CanBeConditional
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from CanHaveLifecycle[BoundHelper[D], D]

              +
              +

              Inherited from CanBeConditional[BoundHelper[D]]

              +
              +

              Inherited from CanBeIdentified[BoundHelper[D]]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ByWord.html b/latest/api/scaldi/ByWord.html new file mode 100644 index 0000000..457bae8 --- /dev/null +++ b/latest/api/scaldi/ByWord.html @@ -0,0 +1,520 @@ + + + + ByWord - scaldi.ByWord + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              ByWord

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + ByWord extends AnyRef + +

              + +

              Helper class to make injection with default value more readable. +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ByWord
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + ByWord(initialIdentifiers: List[Identifier] = Nil) + +

                + + Permalink + + +

                initialIdentifiers

                identifiers

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + def + + + default[T](fn: ⇒ T): InjectConstraints[T] + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeConditional.html b/latest/api/scaldi/CanBeConditional.html new file mode 100644 index 0000000..877ea6f --- /dev/null +++ b/latest/api/scaldi/CanBeConditional.html @@ -0,0 +1,519 @@ + + + + CanBeConditional - scaldi.CanBeConditional + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              CanBeConditional

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + CanBeConditional[R] extends AnyRef + +

              + +
              Self Type
              CanBeConditional[R] with R
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanBeConditional
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + var + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + + def + + + when(cond: ⇒ Condition): CanBeConditional[R] with R + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentified.html b/latest/api/scaldi/CanBeIdentified.html new file mode 100644 index 0000000..c24f08b --- /dev/null +++ b/latest/api/scaldi/CanBeIdentified.html @@ -0,0 +1,553 @@ + + + + CanBeIdentified - scaldi.CanBeIdentified + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              CanBeIdentified

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + CanBeIdentified[R] extends AnyRef + +

              + +
              Self Type
              CanBeIdentified[R] with R
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanBeIdentified
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(ids: Identifier*): R + +

                + + Permalink + + + +
              5. + + +

                + + + def + + + as(ids: Identifier*): R + +

                + + Permalink + + + +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + identifiedBy(ids: Identifier*): R + +

                + + Permalink + + + +
              14. + + +

                + + + var + + + identifiers: List[Identifier] + +

                + + Permalink + + + +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentifier$$StringCanBeIdentifier$.html b/latest/api/scaldi/CanBeIdentifier$$StringCanBeIdentifier$.html new file mode 100644 index 0000000..42a7396 --- /dev/null +++ b/latest/api/scaldi/CanBeIdentifier$$StringCanBeIdentifier$.html @@ -0,0 +1,501 @@ + + + + StringCanBeIdentifier - scaldi.CanBeIdentifier.StringCanBeIdentifier + + + + + + + + + + + + + + + +
              + Object +

              scaldi.CanBeIdentifier

              +

              StringCanBeIdentifier

              Related Doc: + package CanBeIdentifier +

              + + Permalink + + +
              + +

              + + implicit + object + + + StringCanBeIdentifier extends CanBeIdentifier[String] + +

              + +
              + Linear Supertypes +
              CanBeIdentifier[String], AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. StringCanBeIdentifier
              2. CanBeIdentifier
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toIdentifier(str: String): StringIdentifier + +

                + + Permalink + + +
                Definition Classes
                StringCanBeIdentifier → CanBeIdentifier
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from CanBeIdentifier[String]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentifier$$SymbolCanBeIdentifier$.html b/latest/api/scaldi/CanBeIdentifier$$SymbolCanBeIdentifier$.html new file mode 100644 index 0000000..1766d03 --- /dev/null +++ b/latest/api/scaldi/CanBeIdentifier$$SymbolCanBeIdentifier$.html @@ -0,0 +1,501 @@ + + + + SymbolCanBeIdentifier - scaldi.CanBeIdentifier.SymbolCanBeIdentifier + + + + + + + + + + + + + + + +
              + Object +

              scaldi.CanBeIdentifier

              +

              SymbolCanBeIdentifier

              Related Doc: + package CanBeIdentifier +

              + + Permalink + + +
              + +

              + + implicit + object + + + SymbolCanBeIdentifier extends CanBeIdentifier[Symbol] + +

              + +
              + Linear Supertypes +
              CanBeIdentifier[Symbol], AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. SymbolCanBeIdentifier
              2. CanBeIdentifier
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toIdentifier(sym: Symbol): StringIdentifier + +

                + + Permalink + + +
                Definition Classes
                SymbolCanBeIdentifier → CanBeIdentifier
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from CanBeIdentifier[Symbol]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentifier$$TypeCanBeIdentifier$.html b/latest/api/scaldi/CanBeIdentifier$$TypeCanBeIdentifier$.html new file mode 100644 index 0000000..320d3f9 --- /dev/null +++ b/latest/api/scaldi/CanBeIdentifier$$TypeCanBeIdentifier$.html @@ -0,0 +1,501 @@ + + + + TypeCanBeIdentifier - scaldi.CanBeIdentifier.TypeCanBeIdentifier + + + + + + + + + + + + + + + +
              + Object +

              scaldi.CanBeIdentifier

              +

              TypeCanBeIdentifier

              Related Doc: + package CanBeIdentifier +

              + + Permalink + + +
              + +

              + + implicit + object + + + TypeCanBeIdentifier extends CanBeIdentifier[scala.reflect.api.JavaUniverse.Type] + +

              + +
              + Linear Supertypes +
              CanBeIdentifier[scala.reflect.api.JavaUniverse.Type], AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. TypeCanBeIdentifier
              2. CanBeIdentifier
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toIdentifier(tpe: scala.reflect.api.JavaUniverse.Type): TypeTagIdentifier + +

                + + Permalink + + +
                Definition Classes
                TypeCanBeIdentifier → CanBeIdentifier
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from CanBeIdentifier[scala.reflect.api.JavaUniverse.Type]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentifier$.html b/latest/api/scaldi/CanBeIdentifier$.html new file mode 100644 index 0000000..7a51918 --- /dev/null +++ b/latest/api/scaldi/CanBeIdentifier$.html @@ -0,0 +1,586 @@ + + + + CanBeIdentifier - scaldi.CanBeIdentifier + + + + + + + + + + + + + + + + + +

              + + + object + + + CanBeIdentifier + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanBeIdentifier
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + implicit + def + + + ClassCanBeIdentifier[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): CanBeIdentifier[Class[T]] { def toIdentifier(c: Class[T]): scaldi.TypeTagIdentifier } + +

                + + Permalink + + + +
              5. + + +

                + + implicit + object + + + StringCanBeIdentifier extends CanBeIdentifier[String] + +

                + + Permalink + + + +
              6. + + +

                + + implicit + object + + + SymbolCanBeIdentifier extends CanBeIdentifier[Symbol] + +

                + + Permalink + + + +
              7. + + +

                + + implicit + object + + + TypeCanBeIdentifier extends CanBeIdentifier[scala.reflect.api.JavaUniverse.Type] + +

                + + Permalink + + + +
              8. + + +

                + + implicit + def + + + TypeTagCanBeIdentifier[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): CanBeIdentifier[scala.reflect.api.JavaUniverse.TypeTag[T]] { def toIdentifier(typeTag: reflect.runtime.universe.TypeTag[T]): scaldi.TypeTagIdentifier } + +

                + + Permalink + + + +
              9. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              10. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              11. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              14. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + implicit + def + + + identifierCanBeIdentifier[I <: Identifier]: CanBeIdentifier[I] { def toIdentifier(id: I): I } + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              23. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanBeIdentifier.html b/latest/api/scaldi/CanBeIdentifier.html new file mode 100644 index 0000000..f92af99 --- /dev/null +++ b/latest/api/scaldi/CanBeIdentifier.html @@ -0,0 +1,513 @@ + + + + CanBeIdentifier - scaldi.CanBeIdentifier + + + + + + + + + + + + + + + + + +

              + + + trait + + + CanBeIdentifier[T] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanBeIdentifier
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + toIdentifier(target: T): Identifier + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanCompose.html b/latest/api/scaldi/CanCompose.html new file mode 100644 index 0000000..e984d06 --- /dev/null +++ b/latest/api/scaldi/CanCompose.html @@ -0,0 +1,511 @@ + + + + CanCompose - scaldi.CanCompose + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              CanCompose

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + CanCompose[-A, -B, +R] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanCompose
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + compose(cmp1: A, cmp2: B): R + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/CanHaveLifecycle.html b/latest/api/scaldi/CanHaveLifecycle.html new file mode 100644 index 0000000..2603d3b --- /dev/null +++ b/latest/api/scaldi/CanHaveLifecycle.html @@ -0,0 +1,536 @@ + + + + CanHaveLifecycle - scaldi.CanHaveLifecycle + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              CanHaveLifecycle

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + CanHaveLifecycle[H, D] extends AnyRef + +

              + +
              Self Type
              CanHaveLifecycle[H, D] with H
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CanHaveLifecycle
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + def + + + destroyWith(destroyFn: (D) ⇒ Unit): CanHaveLifecycle[H, D] with H + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + initWith(initFn: (D) ⇒ Unit): CanHaveLifecycle[H, D] with H + +

                + + Permalink + + + +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + + var + + + lifecycle: BindingLifecycle[D] + +

                + + Permalink + + + +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Condition$.html b/latest/api/scaldi/Condition$.html new file mode 100644 index 0000000..d1c9d0d --- /dev/null +++ b/latest/api/scaldi/Condition$.html @@ -0,0 +1,518 @@ + + + + Condition - scaldi.Condition + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi

              +

              Condition

              + Related Docs: + trait Condition + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Condition + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Condition
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(fn: (List[Identifier]) ⇒ Boolean): Condition + +

                + + Permalink + + + +
              5. + + +

                + + + def + + + apply(fn: ⇒ Boolean): Condition + +

                + + Permalink + + + +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Condition.html b/latest/api/scaldi/Condition.html new file mode 100644 index 0000000..370b0b0 --- /dev/null +++ b/latest/api/scaldi/Condition.html @@ -0,0 +1,558 @@ + + + + Condition - scaldi.Condition + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi

              +

              Condition

              + Related Docs: + object Condition + | package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Condition extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Condition
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + satisfies(identifiers: List[Identifier]): Boolean + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(otherCond: Condition): AndCondition + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + or(otherCond: Condition): OrCondition + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + + def + + + unary_!: NotCondition + +

                + + Permalink + + + +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/DynamicModule$.html b/latest/api/scaldi/DynamicModule$.html new file mode 100644 index 0000000..196a0f5 --- /dev/null +++ b/latest/api/scaldi/DynamicModule$.html @@ -0,0 +1,506 @@ + + + + DynamicModule - scaldi.DynamicModule + + + + + + + + + + + + + + + +
              + Object/Class +

              scaldi

              +

              DynamicModule

              + Related Docs: + class DynamicModule + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + DynamicModule + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. DynamicModule
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(initBindingsFn: (DynamicModule) ⇒ Unit): Injector + +

                + + Permalink + + +

                Standard factory method that accepts function that may initialize DynamicModule' bindings upon creation.

                Standard factory method that accepts function that may initialize DynamicModule' bindings upon creation. +It lets initializing module with function instead of extending it

                implicit val injector = DynamicModule({ module =>
                +   module.bind [Int] identifiedBy 'httpPort to 8081
                +   module.bind [Server] identifiedBy 'http to HttpServer(inject [String] ('httpHost), inject [Int] ('httpPort))
                +   module.binding identifiedBy 'database and "local" to MysqlDatabase("my_app")
                +})
                initBindingsFn

                function initializing DynamicModule upon creation

                returns

                initialized DynamicModule

                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/DynamicModule.html b/latest/api/scaldi/DynamicModule.html new file mode 100644 index 0000000..9d1b1f8 --- /dev/null +++ b/latest/api/scaldi/DynamicModule.html @@ -0,0 +1,1230 @@ + + + + DynamicModule - scaldi.DynamicModule + + + + + + + + + + + + + + + +
              + Class/Object +

              scaldi

              +

              DynamicModule

              + Related Docs: + object DynamicModule + | package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + DynamicModule extends WordBinder with InjectorWithLifecycle[DynamicModule] with OpenInjectable with MutableInjectorUser with ShutdownHookLifecycleManager + +

              + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. DynamicModule
              2. ShutdownHookLifecycleManager
              3. LifecycleManager
              4. MutableInjectorUser
              5. OpenInjectable
              6. Injectable
              7. Wire
              8. InjectorWithLifecycle
              9. MutableInjector
              10. Initializeable
              11. Freezable
              12. Injector
              13. WordBinder
              14. AnyRef
              15. Any
              16. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + DynamicModule() + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[DynamicModule.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, DynamicModule.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + +
                Definition Classes
                LifecycleManager
                +
              7. + + +

                + + + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              9. + + +

                + + + def + + + bind[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BindHelper[T] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              10. + + +

                + + + def + + + binding: BindHelper[Any] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              11. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Definition Classes
                OpenInjectable → Injectable
                +
              12. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Definition Classes
                OpenInjectable → Injectable
                +
              13. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              14. + + +

                + + + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              15. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              18. + + +

                + + final + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              19. + + +

                + + + def + + + getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] + +

                + + Permalink + + +

                Binding lookup logic +

                Binding lookup logic +

                identifiers

                list of identifiers identifying a depencency

                returns

                a binding identified by identifiers

                Definition Classes
                DynamicModule → InjectorWithLifecycle
                +
              20. + + +

                + + final + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              21. + + +

                + + + def + + + getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] + +

                + + Permalink + + +

                Bindings lookup logic +

                Bindings lookup logic +

                identifiers

                list of identifiers identifying depencencies

                returns

                a list of bindings identified by identifiers

                Definition Classes
                DynamicModule → InjectorWithLifecycle
                +
              22. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              23. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Definition Classes
                OpenInjectable → Injectable
                +
              25. + + +

                + + + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy +

                Initializes bindings that are not Lazy +

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                Definition Classes
                DynamicModule → Initializeable
                +
              26. + + +

                + + + def + + + initEagerWordBindings(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                WordBinder
                +
              27. + + +

                + + + def + + + initNonLazy(): DynamicModule + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              28. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              29. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              30. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              31. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              32. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Definition Classes
                OpenInjectable → Injectable
                +
              33. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              34. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              35. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Definition Classes
                OpenInjectable → Injectable
                +
              36. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Definition Classes
                OpenInjectable → Injectable
                +
              37. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              38. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              39. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              40. + + +

                + + implicit + def + + + injector: Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              41. + + +

                + + implicit + val + + + injectorFn: () ⇒ Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              42. + + +

                + + + def + + + injector_=(newParentInjector: Injector): Unit + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              43. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              44. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              45. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              46. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              47. + + +

                + + + def + + + notRequired(identifier: Identifier): Identifier + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              48. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              49. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              50. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              51. + + +

                + + + def + + + required(identifier: Identifier): Identifier + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              52. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              53. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              54. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              55. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              56. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              57. + + +

                + + + def + + + when(condition: ⇒ Condition)(fn: ⇒ Unit): Unit + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              58. + + +

                + + + lazy val + + + wordBindings: List[BindingWithLifecycle] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ShutdownHookLifecycleManager

              +
              +

              Inherited from LifecycleManager

              +
              +

              Inherited from MutableInjectorUser

              +
              +

              Inherited from OpenInjectable

              +
              +

              Inherited from Injectable

              +
              +

              Inherited from Wire

              +
              +

              Inherited from InjectorWithLifecycle[DynamicModule]

              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Initializeable[DynamicModule]

              +
              +

              Inherited from Freezable

              +
              +

              Inherited from Injector

              +
              +

              Inherited from WordBinder

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Freezable.html b/latest/api/scaldi/Freezable.html new file mode 100644 index 0000000..8a11030 --- /dev/null +++ b/latest/api/scaldi/Freezable.html @@ -0,0 +1,505 @@ + + + + Freezable - scaldi.Freezable + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              Freezable

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Freezable extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Freezable
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Identifiable.html b/latest/api/scaldi/Identifiable.html new file mode 100644 index 0000000..eb29567 --- /dev/null +++ b/latest/api/scaldi/Identifiable.html @@ -0,0 +1,580 @@ + + + + Identifiable - scaldi.Identifiable + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              Identifiable

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Identifiable extends AnyRef + +

              + +

              Entities that extend Identifiable can be identified using Scaldi identifiers. +They can also contain conditions. +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Identifiable
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                Stores condition for binding.

                Stores condition for binding. +Used for conditional binding

                returns

                Option with function returning condition

                +
              2. + + +

                + + abstract + def + + + identifiers: List[Identifier] + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default

                Specifies if binding is cacheable +False by default

                returns

                Boolean true if binding is cacheable, false otherwise

                +
              12. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + + +
              13. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/IdentifiedWord.html b/latest/api/scaldi/IdentifiedWord.html new file mode 100644 index 0000000..3b5088b --- /dev/null +++ b/latest/api/scaldi/IdentifiedWord.html @@ -0,0 +1,520 @@ + + + + IdentifiedWord - scaldi.IdentifiedWord + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              IdentifiedWord

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + IdentifiedWord[+T] extends AnyRef + +

              + +

              Helper class to make injection by identifier more readable. +

              T

              type of the dependency being injected

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. IdentifiedWord
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + IdentifiedWord(default: Option[() ⇒ T] = None, initialIdentifiers: List[Identifier] = Nil) + +

                + + Permalink + + +

                default

                default value for injected instance. It would be used if biding is not found in the Injector.

                initialIdentifiers

                identifiers

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + by[I](target: I*)(implicit arg0: CanBeIdentifier[I]): InjectConstraints[T] + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Identifier$.html b/latest/api/scaldi/Identifier$.html new file mode 100644 index 0000000..d79577c --- /dev/null +++ b/latest/api/scaldi/Identifier$.html @@ -0,0 +1,518 @@ + + + + Identifier - scaldi.Identifier + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi

              +

              Identifier

              + Related Docs: + trait Identifier + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Identifier + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Identifier
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + sameAs(actual: List[Identifier], desired: List[Identifier]): Boolean + +

                + + Permalink + + + +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + implicit + def + + + toIdentifier[T](target: T)(implicit arg0: CanBeIdentifier[T]): Identifier + +

                + + Permalink + + + +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Identifier.html b/latest/api/scaldi/Identifier.html new file mode 100644 index 0000000..56dc7b1 --- /dev/null +++ b/latest/api/scaldi/Identifier.html @@ -0,0 +1,524 @@ + + + + Identifier - scaldi.Identifier + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi

              +

              Identifier

              + Related Docs: + object Identifier + | package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Identifier extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Identifier
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + sameAs(other: Identifier): Boolean + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + required: Boolean + +

                + + Permalink + + + +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ImmutableInjector.html b/latest/api/scaldi/ImmutableInjector.html new file mode 100644 index 0000000..b2cdac6 --- /dev/null +++ b/latest/api/scaldi/ImmutableInjector.html @@ -0,0 +1,558 @@ + + + + ImmutableInjector - scaldi.ImmutableInjector + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              ImmutableInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + ImmutableInjector extends Injector + +

              + +
              + Linear Supertypes +
              Injector, AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ImmutableInjector
              2. Injector
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                Injector
                +
              2. + + +

                + + abstract + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                Injector
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[ImmutableInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, ImmutableInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ImmutableInjectorAggregation.html b/latest/api/scaldi/ImmutableInjectorAggregation.html new file mode 100644 index 0000000..8246997 --- /dev/null +++ b/latest/api/scaldi/ImmutableInjectorAggregation.html @@ -0,0 +1,572 @@ + + + + ImmutableInjectorAggregation - scaldi.ImmutableInjectorAggregation + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              ImmutableInjectorAggregation

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + ImmutableInjectorAggregation extends Injector + +

              + +
              + Linear Supertypes +
              Injector, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ImmutableInjectorAggregation
              2. Injector
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + ImmutableInjectorAggregation(chain: List[ImmutableInjector]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[ImmutableInjectorAggregation.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, ImmutableInjectorAggregation.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                ImmutableInjectorAggregation → Injector
                +
              12. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                ImmutableInjectorAggregation → Injector
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ImmutableWrapper$.html b/latest/api/scaldi/ImmutableWrapper$.html new file mode 100644 index 0000000..bb21887 --- /dev/null +++ b/latest/api/scaldi/ImmutableWrapper$.html @@ -0,0 +1,501 @@ + + + + ImmutableWrapper - scaldi.ImmutableWrapper + + + + + + + + + + + + + + + + + +

              + + + object + + + ImmutableWrapper + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ImmutableWrapper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(delegate: Injector): ImmutableWrapper + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ImmutableWrapper.html b/latest/api/scaldi/ImmutableWrapper.html new file mode 100644 index 0000000..6cafafa --- /dev/null +++ b/latest/api/scaldi/ImmutableWrapper.html @@ -0,0 +1,576 @@ + + + + ImmutableWrapper - scaldi.ImmutableWrapper + + + + + + + + + + + + + + + + + +

              + + + class + + + ImmutableWrapper extends Injector with ImmutableInjector + +

              + +
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ImmutableWrapper
              2. ImmutableInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + ImmutableWrapper(delegate: Injector) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[ImmutableWrapper.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, ImmutableWrapper.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                ImmutableWrapper → Injector
                +
              12. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                ImmutableWrapper → Injector
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ImmutableInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Initializeable.html b/latest/api/scaldi/Initializeable.html new file mode 100644 index 0000000..ca8d136 --- /dev/null +++ b/latest/api/scaldi/Initializeable.html @@ -0,0 +1,558 @@ + + + + Initializeable - scaldi.Initializeable + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              Initializeable

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Initializeable[I] extends Freezable + +

              + +
              Self Type
              Initializeable[I] with I with LifecycleManager
              + Linear Supertypes +
              Freezable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Initializeable
              2. Freezable
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy

                Initializes bindings that are not Lazy

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + initNonLazy(): I + +

                + + Permalink + + + +
              12. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + + +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Freezable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/InjectConstraints.html b/latest/api/scaldi/InjectConstraints.html new file mode 100644 index 0000000..add8de0 --- /dev/null +++ b/latest/api/scaldi/InjectConstraints.html @@ -0,0 +1,624 @@ + + + + InjectConstraints - scaldi.InjectConstraints + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              InjectConstraints

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + InjectConstraints[+T](default: Option[() ⇒ T] = None, initialIdentifiers: List[Identifier] = Nil) extends Product with Serializable + +

              + +

              A wrapper for a default value for the injection and for its identifiers.

              It is here to make injection constraints look like natural language. +

              T

              type of the dependency being injected

              default

              default value for injected instance. It would be used if biding is not found in the Injector.

              initialIdentifiers

              identifiers

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. InjectConstraints
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + InjectConstraints(default: Option[() ⇒ T] = None, initialIdentifiers: List[Identifier] = Nil) + +

                + + Permalink + + +

                default

                default value for injected instance. It would be used if biding is not found in the Injector.

                initialIdentifiers

                identifiers

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(by: IdentifiedWord[_]): IdentifiedWord[T] + +

                + + Permalink + + +

                Helper method to make possible that "identified" follows "and" word.

                Helper method to make possible that "identified" follows "and" word.

                Example: +inject [Database] (by default defaultDb and identified by 'remote) +

                by

                IdentifiedWord that follows the "and"

                +
              5. + + +

                + + + def + + + and(by: ByWord): ByWord + +

                + + Permalink + + +

                Helper method to define a default value for injection.

                Helper method to define a default value for injection.

                Example: +inject [Database] ('database and by default defaultDb) +

                by

                ByWord that follows the "and"

                +
              6. + + +

                + + + def + + + and(ids: Identifier*): InjectConstraints[T] + +

                + + Permalink + + +

                Appends identifier to a current list of identifiers.

                Appends identifier to a current list of identifiers. +

                ids

                one or many other identifiers

                +
              7. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              8. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              9. + + +

                + + + val + + + default: Option[() ⇒ T] + +

                + + Permalink + + +

                default value for injected instance.

                default value for injected instance. It would be used if biding is not found in the Injector.

                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + var + + + identifiers: List[Identifier] + +

                + + Permalink + + + +
              14. + + +

                + + + val + + + initialIdentifiers: List[Identifier] + +

                + + Permalink + + +

                identifiers

                +
              15. + + +

                + + + def + + + is(by: ByWord): ByWord + +

                + + Permalink + + +

                Alias to "and"

                Alias to "and"

                Example: +inject [Database] ('remote is by default defaultDb) +

                by

                ByWord that follows the "is"

                +
              16. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              17. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + that(by: ByWord): ByWord + +

                + + Permalink + + +

                Alias to "and"

                Alias to "and"

                Example: +inject [Database] ('remote that by default defaultDb) +

                by

                ByWord that follows the "that"

                +
              22. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + + def + + + which(by: ByWord): ByWord + +

                + + Permalink + + +

                Alias to "and"

                Alias to "and"

                Example: +inject [Database] ('remote which by default defaultDb) +

                by

                ByWord that follows the "which"

                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/InjectException.html b/latest/api/scaldi/InjectException.html new file mode 100644 index 0000000..04e6f62 --- /dev/null +++ b/latest/api/scaldi/InjectException.html @@ -0,0 +1,714 @@ + + + + InjectException - scaldi.InjectException + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              InjectException

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + InjectException extends RuntimeException + +

              + +
              + Linear Supertypes +
              RuntimeException, Exception, Throwable, Serializable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. InjectException
              2. RuntimeException
              3. Exception
              4. Throwable
              5. Serializable
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + InjectException(message: String) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + addSuppressed(arg0: Throwable): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + fillInStackTrace(): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + + def + + + getCause(): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + getLocalizedMessage(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              14. + + +

                + + + def + + + getMessage(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              15. + + +

                + + + def + + + getStackTrace(): Array[StackTraceElement] + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              16. + + +

                + + final + def + + + getSuppressed(): Array[Throwable] + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              17. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + + def + + + initCause(arg0: Throwable): Throwable + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              19. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              20. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + printStackTrace(arg0: PrintWriter): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              24. + + +

                + + + def + + + printStackTrace(arg0: PrintStream): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              25. + + +

                + + + def + + + printStackTrace(): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              26. + + +

                + + + def + + + setStackTrace(arg0: Array[StackTraceElement]): Unit + +

                + + Permalink + + +
                Definition Classes
                Throwable
                +
              27. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                Throwable → AnyRef → Any
                +
              29. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              30. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              31. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from RuntimeException

              +
              +

              Inherited from Exception

              +
              +

              Inherited from Throwable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Injectable$.html b/latest/api/scaldi/Injectable$.html new file mode 100644 index 0000000..05ef77c --- /dev/null +++ b/latest/api/scaldi/Injectable$.html @@ -0,0 +1,794 @@ + + + + Injectable - scaldi.Injectable + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi

              +

              Injectable

              + Related Docs: + trait Injectable + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Injectable extends OpenInjectable + +

              + +

              Companion object of Injectable which can be just imported in contrast +to Injectable trait which always need to be extended. After importing +it, you can use an injection DSL without extending the trait.

              Example:

              import scaldi.Injectable._
              +
              +val database = inject [Database]
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Injectable
              2. OpenInjectable
              3. Injectable
              4. Wire
              5. AnyRef
              6. Any
              7. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Definition Classes
                OpenInjectable → Injectable
                +
              6. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Definition Classes
                OpenInjectable → Injectable
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Definition Classes
                OpenInjectable → Injectable
                +
              14. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              15. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              16. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              17. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              18. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Definition Classes
                OpenInjectable → Injectable
                +
              19. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              20. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              21. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Definition Classes
                OpenInjectable → Injectable
                +
              22. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Definition Classes
                OpenInjectable → Injectable
                +
              23. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              24. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              25. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              26. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              27. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              29. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              30. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              31. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              32. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              33. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              34. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              35. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from OpenInjectable

              +
              +

              Inherited from Injectable

              +
              +

              Inherited from Wire

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Injectable.html b/latest/api/scaldi/Injectable.html new file mode 100644 index 0000000..cd90c3c --- /dev/null +++ b/latest/api/scaldi/Injectable.html @@ -0,0 +1,794 @@ + + + + Injectable - scaldi.Injectable + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi

              +

              Injectable

              + Related Docs: + object Injectable + | package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Injectable extends Wire + +

              + +

              Provides injection DSL. You can extend it in your classes in order +to use inject methods.

              The only responsibility of this trait is to provide you with inject function +(so it just provides nice syntax for injecting dependencies).

              In order to actually find and inject dependencies, inject method always +takes an implicit parameter of type Injector.

              Example:

              Application (implicit inj: Injector) extends Injectable {
              +   protected val db = inject [Database] // database can now be used as an instance of Database class`
              +}
              + Linear Supertypes +
              Wire, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Injectable
              2. Wire
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Attributes
                protected
                +
              6. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Attributes
                protected
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Attributes
                protected
                +
              14. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                +
              15. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                +
              16. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Attributes
                protected
                +
              17. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Attributes
                protected
                +
              18. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Attributes
                protected
                +
              19. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                +
              20. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                +
              21. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Attributes
                protected
                +
              22. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Attributes
                protected
                +
              23. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              24. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              25. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              26. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              27. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Attributes
                protected
                +
              29. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              30. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              31. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              32. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              33. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              34. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              35. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Wire

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Injector$$nilWithNilComposition$.html b/latest/api/scaldi/Injector$$nilWithNilComposition$.html new file mode 100644 index 0000000..8e22537 --- /dev/null +++ b/latest/api/scaldi/Injector$$nilWithNilComposition$.html @@ -0,0 +1,501 @@ + + + + nilWithNilComposition - scaldi.Injector.nilWithNilComposition + + + + + + + + + + + + + + + +
              + Object +

              scaldi.Injector

              +

              nilWithNilComposition

              Related Doc: + package Injector +

              + + Permalink + + +
              + +

              + + implicit + object + + + nilWithNilComposition extends CanCompose[NilInjector.type, NilInjector.type, NilInjector.type] + +

              + +
              + Linear Supertypes +
              CanCompose[NilInjector.type, NilInjector.type, NilInjector.type], AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. nilWithNilComposition
              2. CanCompose
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + def + + + compose(cmp1: NilInjector.type, cmp2: NilInjector.type): NilInjector.type + +

                + + Permalink + + +
                Definition Classes
                nilWithNilComposition → CanCompose
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from CanCompose[NilInjector.type, NilInjector.type, NilInjector.type]

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Injector$.html b/latest/api/scaldi/Injector$.html new file mode 100644 index 0000000..c23dcff --- /dev/null +++ b/latest/api/scaldi/Injector$.html @@ -0,0 +1,573 @@ + + + + Injector - scaldi.Injector + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi

              +

              Injector

              + Related Docs: + trait Injector + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + Injector extends LowPriorityImmutableInjectorComposition + +

              + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Injector
              2. LowPriorityImmutableInjectorComposition
              3. LowPriorityMutableInjectorComposition
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + implicit + def + + + immutableComposition[I1 <: ImmutableInjector, I2 <: ImmutableInjector]: CanCompose[I1, I2, ImmutableInjectorAggregation] + +

                + + Permalink + + + +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + implicit + def + + + mutableInjectorComposition[I1 <: Injector, I2 <: Injector]: CanCompose[I1, I2, MutableInjectorAggregation] + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + implicit + object + + + nilWithNilComposition extends CanCompose[NilInjector.type, NilInjector.type, NilInjector.type] + +

                + + Permalink + + + +
              16. + + +

                + + implicit + def + + + nilWithOtherInjectorComposition[I <: Injector]: CanCompose[NilInjector.type, I, I] + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + implicit + def + + + otherInjectorWithNilComposition[I <: Injector]: CanCompose[I, NilInjector.type, I] + +

                + + Permalink + + + +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              22. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Injector.html b/latest/api/scaldi/Injector.html new file mode 100644 index 0000000..35c0873 --- /dev/null +++ b/latest/api/scaldi/Injector.html @@ -0,0 +1,558 @@ + + + + Injector - scaldi.Injector + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi

              +

              Injector

              + Related Docs: + object Injector + | package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Injector extends AnyRef + +

              + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Injector
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                +
              2. + + +

                + + abstract + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[Injector.this.type, I, R]): R + +

                + + Permalink + + + +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, Injector.this.type, R]): R + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/InjectorWithLifecycle.html b/latest/api/scaldi/InjectorWithLifecycle.html new file mode 100644 index 0000000..bcff658 --- /dev/null +++ b/latest/api/scaldi/InjectorWithLifecycle.html @@ -0,0 +1,670 @@ + + + + InjectorWithLifecycle - scaldi.InjectorWithLifecycle + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              InjectorWithLifecycle

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + InjectorWithLifecycle[I <: InjectorWithLifecycle[I]] extends Injector with Initializeable[I] with MutableInjector + +

              + +
              Self Type
              I with LifecycleManager with Initializeable[I]
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. InjectorWithLifecycle
              2. MutableInjector
              3. Initializeable
              4. Freezable
              5. Injector
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] + +

                + + Permalink + + +

                Binding lookup logic

                Binding lookup logic

                identifiers

                list of identifiers identifying a depencency

                returns

                a binding identified by identifiers

                +
              2. + + +

                + + abstract + def + + + getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] + +

                + + Permalink + + +

                Bindings lookup logic

                Bindings lookup logic

                identifiers

                list of identifiers identifying depencencies

                returns

                a list of bindings identified by identifiers

                +
              3. + + +

                + + abstract + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy

                Initializes bindings that are not Lazy

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                Definition Classes
                Initializeable
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[InjectorWithLifecycle.this, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, InjectorWithLifecycle.this, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              12. + + +

                + + final + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + + def + + + initNonLazy(): I + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              16. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              17. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              22. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              26. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Initializeable[I]

              +
              +

              Inherited from Freezable

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/LazyBinding.html b/latest/api/scaldi/LazyBinding.html new file mode 100644 index 0000000..9fc1aef --- /dev/null +++ b/latest/api/scaldi/LazyBinding.html @@ -0,0 +1,624 @@ + + + + LazyBinding - scaldi.LazyBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              LazyBinding

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + LazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

              + +

              Binding that is initialized on on first use and never changes afterwards.

              createFn

              function that creates and returns value that will be associated with binding

              identifiers

              binding's identifiers (empty by default)

              condition

              binding's conditions (empty by default)

              lifecycle

              binding's lifecycle (empty by default)

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, BindingWithLifecycle, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. LazyBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. BindingWithLifecycle
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + LazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) + +

                + + Permalink + + +

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                binding's conditions (empty by default)

                binding's conditions (empty by default)

                Definition Classes
                LazyBinding → Identifiable
                +
              7. + + +

                + + + var + + + destroyableAdded: Boolean + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + + def + + + get(lifecycleManager: LifecycleManager): Option[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined +

                lifecycleManager

                LifecycleManager that will handle the destruction of the binding at the end of the lifecycle

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                LazyBinding → BindingWithLifecycle
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +

                binding's identifiers (empty by default)

                binding's identifiers (empty by default)

                Definition Classes
                LazyBinding → Identifiable
                +
              13. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default +

                Specifies if binding is cacheable +False by default +

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                LazyBinding → Identifiable
                +
              14. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              15. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              16. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              17. + + +

                + + + val + + + lifecycle: BindingLifecycle[Any] + +

                + + Permalink + + +

                binding's lifecycle (empty by default)

                binding's lifecycle (empty by default)

                Definition Classes
                LazyBinding → BindingWithLifecycle
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + + lazy val + + + target: Option[Any] + +

                + + Permalink + + + +
              23. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from BindingWithLifecycle

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/LifecycleManager.html b/latest/api/scaldi/LifecycleManager.html new file mode 100644 index 0000000..5572c4f --- /dev/null +++ b/latest/api/scaldi/LifecycleManager.html @@ -0,0 +1,539 @@ + + + + LifecycleManager - scaldi.LifecycleManager + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              LifecycleManager

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + LifecycleManager extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. LifecycleManager
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              2. + + +

                + + abstract + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/LowPriorityImmutableInjectorComposition.html b/latest/api/scaldi/LowPriorityImmutableInjectorComposition.html new file mode 100644 index 0000000..57d014c --- /dev/null +++ b/latest/api/scaldi/LowPriorityImmutableInjectorComposition.html @@ -0,0 +1,521 @@ + + + + LowPriorityImmutableInjectorComposition - scaldi.LowPriorityImmutableInjectorComposition + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              LowPriorityImmutableInjectorComposition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + LowPriorityImmutableInjectorComposition extends LowPriorityMutableInjectorComposition + +

              + +
              + Linear Supertypes + +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. LowPriorityImmutableInjectorComposition
              2. LowPriorityMutableInjectorComposition
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + implicit + def + + + immutableComposition[I1 <: ImmutableInjector, I2 <: ImmutableInjector]: CanCompose[I1, I2, ImmutableInjectorAggregation] + +

                + + Permalink + + + +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + implicit + def + + + mutableInjectorComposition[I1 <: Injector, I2 <: Injector]: CanCompose[I1, I2, MutableInjectorAggregation] + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/LowPriorityMutableInjectorComposition.html b/latest/api/scaldi/LowPriorityMutableInjectorComposition.html new file mode 100644 index 0000000..f427b68 --- /dev/null +++ b/latest/api/scaldi/LowPriorityMutableInjectorComposition.html @@ -0,0 +1,502 @@ + + + + LowPriorityMutableInjectorComposition - scaldi.LowPriorityMutableInjectorComposition + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              LowPriorityMutableInjectorComposition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + LowPriorityMutableInjectorComposition extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. LowPriorityMutableInjectorComposition
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + implicit + def + + + mutableInjectorComposition[I1 <: Injector, I2 <: Injector]: CanCompose[I1, I2, MutableInjectorAggregation] + +

                + + Permalink + + + +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Module.html b/latest/api/scaldi/Module.html new file mode 100644 index 0000000..be19e31 --- /dev/null +++ b/latest/api/scaldi/Module.html @@ -0,0 +1,1208 @@ + + + + Module - scaldi.Module + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              Module

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Module extends WordBinder with InjectorWithLifecycle[Module] with Injectable with MutableInjectorUser with ShutdownHookLifecycleManager + +

              + +

              Module is a place where you declare your bindings. +It's also the most common injector that you can use in most cases. +It's a mutable injector so it can have a lifecycle and it also provides nice DSL for the bindings.

              Module is an Injectable instance thanks to that you can inject other dependencies in module's bindings. +

              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Module
              2. ShutdownHookLifecycleManager
              3. LifecycleManager
              4. MutableInjectorUser
              5. Injectable
              6. Wire
              7. InjectorWithLifecycle
              8. MutableInjector
              9. Initializeable
              10. Freezable
              11. Injector
              12. WordBinder
              13. AnyRef
              14. Any
              15. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[Module.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, Module.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + +
                Definition Classes
                LifecycleManager
                +
              7. + + +

                + + + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              9. + + +

                + + + def + + + bind[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BindHelper[T] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              10. + + +

                + + + def + + + binding: BindHelper[Any] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              11. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Attributes
                protected
                Definition Classes
                Injectable
                +
              12. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Attributes
                protected
                Definition Classes
                Injectable
                +
              13. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              14. + + +

                + + + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              15. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              18. + + +

                + + final + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              19. + + +

                + + + def + + + getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] + +

                + + Permalink + + +

                Binding lookup logic +

                Binding lookup logic +

                identifiers

                list of identifiers identifying a depencency

                returns

                a binding identified by identifiers

                Definition Classes
                Module → InjectorWithLifecycle
                +
              20. + + +

                + + final + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              21. + + +

                + + + def + + + getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] + +

                + + Permalink + + +

                Bindings lookup logic +

                Bindings lookup logic +

                identifiers

                list of identifiers identifying depencencies

                returns

                a list of bindings identified by identifiers

                Definition Classes
                Module → InjectorWithLifecycle
                +
              22. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              23. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Attributes
                protected
                Definition Classes
                Injectable
                +
              25. + + +

                + + + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy +

                Initializes bindings that are not Lazy +

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                Definition Classes
                Module → Initializeable
                +
              26. + + +

                + + + def + + + initEagerWordBindings(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                WordBinder
                +
              27. + + +

                + + + def + + + initNonLazy(): Module + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              28. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              29. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              30. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              31. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              32. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Attributes
                protected
                Definition Classes
                Injectable
                +
              33. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              34. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              35. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Attributes
                protected
                Definition Classes
                Injectable
                +
              36. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Attributes
                protected
                Definition Classes
                Injectable
                +
              37. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              38. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              39. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              40. + + +

                + + implicit + def + + + injector: Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              41. + + +

                + + implicit + val + + + injectorFn: () ⇒ Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              42. + + +

                + + + def + + + injector_=(newParentInjector: Injector): Unit + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              43. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              44. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              45. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              46. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              47. + + +

                + + + def + + + notRequired(identifier: Identifier): Identifier + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              48. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              49. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              50. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              51. + + +

                + + + def + + + required(identifier: Identifier): Identifier + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              52. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              53. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              54. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              55. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              56. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              57. + + +

                + + + def + + + when(condition: ⇒ Condition)(fn: ⇒ Unit): Unit + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              58. + + +

                + + + lazy val + + + wordBindings: List[BindingWithLifecycle] + +

                + + Permalink + + +
                Definition Classes
                WordBinder
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ShutdownHookLifecycleManager

              +
              +

              Inherited from LifecycleManager

              +
              +

              Inherited from MutableInjectorUser

              +
              +

              Inherited from Injectable

              +
              +

              Inherited from Wire

              +
              +

              Inherited from InjectorWithLifecycle[Module]

              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Initializeable[Module]

              +
              +

              Inherited from Freezable

              +
              +

              Inherited from Injector

              +
              +

              Inherited from WordBinder

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/MutableInjector.html b/latest/api/scaldi/MutableInjector.html new file mode 100644 index 0000000..ee8af4a --- /dev/null +++ b/latest/api/scaldi/MutableInjector.html @@ -0,0 +1,558 @@ + + + + MutableInjector - scaldi.MutableInjector + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              MutableInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + MutableInjector extends Injector + +

              + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. MutableInjector
              2. Injector
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                Injector
                +
              2. + + +

                + + abstract + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                Injector
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[MutableInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, MutableInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/MutableInjectorAggregation.html b/latest/api/scaldi/MutableInjectorAggregation.html new file mode 100644 index 0000000..842ce88 --- /dev/null +++ b/latest/api/scaldi/MutableInjectorAggregation.html @@ -0,0 +1,794 @@ + + + + MutableInjectorAggregation - scaldi.MutableInjectorAggregation + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              MutableInjectorAggregation

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + MutableInjectorAggregation extends InjectorWithLifecycle[MutableInjectorAggregation] with MutableInjectorUser with ShutdownHookLifecycleManager + +

              + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. MutableInjectorAggregation
              2. ShutdownHookLifecycleManager
              3. LifecycleManager
              4. MutableInjectorUser
              5. InjectorWithLifecycle
              6. MutableInjector
              7. Initializeable
              8. Freezable
              9. Injector
              10. AnyRef
              11. Any
              12. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + MutableInjectorAggregation(chain: List[Injector]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[MutableInjectorAggregation.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, MutableInjectorAggregation.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + +
                Definition Classes
                LifecycleManager
                +
              7. + + +

                + + + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              9. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              10. + + +

                + + + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              11. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              14. + + +

                + + final + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              15. + + +

                + + + def + + + getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] + +

                + + Permalink + + +

                Binding lookup logic

                Binding lookup logic

                identifiers

                list of identifiers identifying a depencency

                returns

                a binding identified by identifiers

                Definition Classes
                MutableInjectorAggregation → InjectorWithLifecycle
                +
              16. + + +

                + + final + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              17. + + +

                + + + def + + + getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] + +

                + + Permalink + + +

                Bindings lookup logic

                Bindings lookup logic

                identifiers

                list of identifiers identifying depencencies

                returns

                a list of bindings identified by identifiers

                Definition Classes
                MutableInjectorAggregation → InjectorWithLifecycle
                +
              18. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy

                Initializes bindings that are not Lazy

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                Definition Classes
                MutableInjectorAggregation → Initializeable
                +
              21. + + +

                + + + def + + + initNonLazy(): MutableInjectorAggregation + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              22. + + +

                + + implicit + def + + + injector: Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              23. + + +

                + + implicit + val + + + injectorFn: () ⇒ Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              24. + + +

                + + + def + + + injector_=(newParentInjector: Injector): Unit + +

                + + Permalink + + + +
              25. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              26. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              27. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              29. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              30. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              31. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              32. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              33. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              34. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              35. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ShutdownHookLifecycleManager

              +
              +

              Inherited from LifecycleManager

              +
              +

              Inherited from MutableInjectorUser

              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Freezable

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/MutableInjectorUser.html b/latest/api/scaldi/MutableInjectorUser.html new file mode 100644 index 0000000..bcc8213 --- /dev/null +++ b/latest/api/scaldi/MutableInjectorUser.html @@ -0,0 +1,611 @@ + + + + MutableInjectorUser - scaldi.MutableInjectorUser + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              MutableInjectorUser

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + MutableInjectorUser extends MutableInjector + +

              + +
              Self Type
              MutableInjectorUser with Injector with Freezable
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. MutableInjectorUser
              2. MutableInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup

                Single binding lookup

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                Injector
                +
              2. + + +

                + + abstract + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup

                List of bindings lookup

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                Injector
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[MutableInjectorUser.this, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, MutableInjectorUser.this, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + implicit + def + + + injector: Injector + +

                + + Permalink + + + +
              14. + + +

                + + implicit + val + + + injectorFn: () ⇒ Injector + +

                + + Permalink + + + +
              15. + + +

                + + + def + + + injector_=(newParentInjector: Injector): Unit + +

                + + Permalink + + + +
              16. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              17. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              22. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/NilInjector$.html b/latest/api/scaldi/NilInjector$.html new file mode 100644 index 0000000..d3c6d38 --- /dev/null +++ b/latest/api/scaldi/NilInjector$.html @@ -0,0 +1,560 @@ + + + + NilInjector - scaldi.NilInjector + + + + + + + + + + + + + + + +
              + Object +

              scaldi

              +

              NilInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + NilInjector extends ImmutableInjector + +

              + +

              Empty injector, used for injector combination or as a filler where injector is required, +but there are no bindings. +

              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NilInjector
              2. ImmutableInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[NilInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, NilInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): None.type + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                NilInjector → Injector
                +
              12. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): Nil.type + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                NilInjector → Injector
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ImmutableInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/NonLazyBinding.html b/latest/api/scaldi/NonLazyBinding.html new file mode 100644 index 0000000..1f25447 --- /dev/null +++ b/latest/api/scaldi/NonLazyBinding.html @@ -0,0 +1,627 @@ + + + + NonLazyBinding - scaldi.NonLazyBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              NonLazyBinding

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + NonLazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

              + +

              Binding that is initialized at the Injector initialization phase (normally during an +application startup) and never changes afterwards.

              createFn

              function that creates and returns value that will be associated with binding

              identifiers

              binding's identifiers (empty by default)

              condition

              binding's conditions (empty by default)

              lifecycle

              binding's lifecycle (empty by default)

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, BindingWithLifecycle, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NonLazyBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. BindingWithLifecycle
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + NonLazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) + +

                + + Permalink + + +

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                binding's conditions (empty by default)

                binding's conditions (empty by default)

                Definition Classes
                NonLazyBinding → Identifiable
                +
              7. + + +

                + + + var + + + destroyableAdded: Boolean + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + + def + + + get(lifecycleManager: LifecycleManager): Option[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined +

                lifecycleManager

                LifecycleManager that will handle the destruction of the binding at the end of the lifecycle

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                NonLazyBinding → BindingWithLifecycle
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +

                binding's identifiers (empty by default)

                binding's identifiers (empty by default)

                Definition Classes
                NonLazyBinding → Identifiable
                +
              13. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default +

                Specifies if binding is cacheable +False by default +

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                NonLazyBinding → Identifiable
                +
              14. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              15. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default +

                Defines if binding is lazy or not +False by default +

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                NonLazyBinding → Identifiable
                +
              16. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              17. + + +

                + + + val + + + lifecycle: BindingLifecycle[Any] + +

                + + Permalink + + +

                binding's lifecycle (empty by default)

                binding's lifecycle (empty by default)

                Definition Classes
                NonLazyBinding → BindingWithLifecycle
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + + lazy val + + + target: Option[Any] + +

                + + Permalink + + + +
              23. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from BindingWithLifecycle

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/NotCondition.html b/latest/api/scaldi/NotCondition.html new file mode 100644 index 0000000..4d7ec30 --- /dev/null +++ b/latest/api/scaldi/NotCondition.html @@ -0,0 +1,546 @@ + + + + NotCondition - scaldi.NotCondition + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              NotCondition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + NotCondition(condition: Condition) extends Condition with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Condition, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NotCondition
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Condition
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + NotCondition(condition: Condition) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(otherCond: Condition): AndCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + + val + + + condition: Condition + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + or(otherCond: Condition): OrCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              16. + + +

                + + + def + + + satisfies(identifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                NotCondition → Condition
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + unary_!: NotCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Condition

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/OpenInjectable.html b/latest/api/scaldi/OpenInjectable.html new file mode 100644 index 0000000..3745ceb --- /dev/null +++ b/latest/api/scaldi/OpenInjectable.html @@ -0,0 +1,790 @@ + + + + OpenInjectable - scaldi.OpenInjectable + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              OpenInjectable

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + OpenInjectable extends Injectable + +

              + +

              Exactly the same as Injectable trait, but with all methods made public +

              + Linear Supertypes +
              Injectable, Wire, AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OpenInjectable
              2. Injectable
              3. Wire
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Definition Classes
                OpenInjectable → Injectable
                +
              6. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Definition Classes
                OpenInjectable → Injectable
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Definition Classes
                OpenInjectable → Injectable
                +
              14. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              15. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              16. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              17. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              18. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Definition Classes
                OpenInjectable → Injectable
                +
              19. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              20. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Definition Classes
                OpenInjectable → Injectable
                +
              21. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Definition Classes
                OpenInjectable → Injectable
                +
              22. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Definition Classes
                OpenInjectable → Injectable
                +
              23. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              24. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              25. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              26. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              27. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Definition Classes
                OpenInjectable → Injectable
                +
              29. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              30. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              31. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              32. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              33. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              34. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              35. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injectable

              +
              +

              Inherited from Wire

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/OrCondition.html b/latest/api/scaldi/OrCondition.html new file mode 100644 index 0000000..3573d0f --- /dev/null +++ b/latest/api/scaldi/OrCondition.html @@ -0,0 +1,546 @@ + + + + OrCondition - scaldi.OrCondition + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              OrCondition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + OrCondition(conditions: List[Condition]) extends Condition with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Condition, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrCondition
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Condition
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + OrCondition(conditions: List[Condition]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(otherCond: Condition): AndCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + + val + + + conditions: List[Condition] + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + or(otherCond: Condition): OrCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              16. + + +

                + + + def + + + satisfies(identifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                OrCondition → Condition
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + unary_!: NotCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Condition

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/PropertiesInjector$.html b/latest/api/scaldi/PropertiesInjector$.html new file mode 100644 index 0000000..2b00c61 --- /dev/null +++ b/latest/api/scaldi/PropertiesInjector$.html @@ -0,0 +1,553 @@ + + + + PropertiesInjector - scaldi.PropertiesInjector + + + + + + + + + + + + + + + + + +

              + + + object + + + PropertiesInjector + +

              + +

              Factories to handle different type of properties' source. +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. PropertiesInjector
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(properties: Properties): PropertiesInjector + +

                + + Permalink + + +

                Factory method to retrieve properties from a Properties instance.

                Factory method to retrieve properties from a Properties instance.

                properties

                Properties instance with properties

                returns

                an instance of PropertiesInjector with properties supplied Properties instance

                +
              5. + + +

                + + + def + + + apply(stream: InputStream): PropertiesInjector + +

                + + Permalink + + +

                Factory method to retrieve properties from an input stream.

                Factory method to retrieve properties from an input stream.

                stream

                input stream which will supply properties

                returns

                an instance of PropertiesInjector with properties from input stream

                +
              6. + + +

                + + + def + + + apply(file: File): PropertiesInjector + +

                + + Permalink + + +

                Factory method to retrieve properties from a file.

                Factory method to retrieve properties from a file.

                file

                file with properties

                returns

                an instance of PropertiesInjector with properties from supplied file

                +
              7. + + +

                + + + def + + + apply(fileName: String): PropertiesInjector + +

                + + Permalink + + +

                Factory method to retrieve properties from a file name.

                Factory method to retrieve properties from a file name.

                fileName

                name of the file with properties

                returns

                an instance of PropertiesInjector with properties from file with supplied file name

                +
              8. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              9. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/PropertiesInjector.html b/latest/api/scaldi/PropertiesInjector.html new file mode 100644 index 0000000..dc098bd --- /dev/null +++ b/latest/api/scaldi/PropertiesInjector.html @@ -0,0 +1,612 @@ + + + + PropertiesInjector - scaldi.PropertiesInjector + + + + + + + + + + + + + + + + + +

              + + + class + + + PropertiesInjector extends RawInjector + +

              + +

              Used to look for simple bindings in supplied properties (hash table)

              + Linear Supertypes +
              RawInjector, Injector, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. PropertiesInjector
              2. RawInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[PropertiesInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, PropertiesInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + def + + + discoverBinding(name: String, tpe: scala.reflect.api.JavaUniverse.Type, ids: List[Identifier] = Nil): Option[Binding] + +

                + + Permalink + + +

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                name

                name of the value to bind

                tpe

                type of the value to bind

                ids

                identifiers of the resulting binding

                returns

                option with resulting binding (None if binding was not found by name)

                Attributes
                protected
                Definition Classes
                RawInjector
                +
              9. + + +

                + + + def + + + discoverBinding(ids: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Retrieves bindings from cache based on supplied identifiers.

                Retrieves bindings from cache based on supplied identifiers.

                ids

                identifiers describing binding

                returns

                found binding, None if binding was not found

                Attributes
                protected
                Definition Classes
                RawInjector
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                RawInjector → Injector
                +
              14. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                RawInjector → Injector
                +
              15. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + getRawValue(name: String): Option[String] + +

                + + Permalink + + +

                Used to retrieve value from other places than modules (config, system, etc.).

                Used to retrieve value from other places than modules (config, system, etc.). +

                name

                property's name

                returns

                property defined by name as instance of String

                Definition Classes
                PropertiesInjector → RawInjector
                +
              17. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              19. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              26. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from RawInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ProviderBinding.html b/latest/api/scaldi/ProviderBinding.html new file mode 100644 index 0000000..d4c8938 --- /dev/null +++ b/latest/api/scaldi/ProviderBinding.html @@ -0,0 +1,605 @@ + + + + ProviderBinding - scaldi.ProviderBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              ProviderBinding

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + ProviderBinding(createFn: () ⇒ Any, identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

              + +

              Binding that is initialized on every injection with createFn function.

              createFn

              function that creates and returns value that will be associated with binding

              identifiers

              binding's identifiers (empty by default)

              condition

              binding's conditions (empty by default)

              lifecycle

              binding's lifecycle (empty by default)

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, BindingWithLifecycle, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ProviderBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. BindingWithLifecycle
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + ProviderBinding(createFn: () ⇒ Any, identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) + +

                + + Permalink + + +

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                binding's conditions (empty by default)

                binding's conditions (empty by default)

                Definition Classes
                ProviderBinding → Identifiable
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + + def + + + get(lifecycleManager: LifecycleManager): Some[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined +

                lifecycleManager

                LifecycleManager that will handle the destruction of the binding at the end of the lifecycle

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                ProviderBinding → BindingWithLifecycle
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +

                binding's identifiers (empty by default)

                binding's identifiers (empty by default)

                Definition Classes
                ProviderBinding → Identifiable
                +
              12. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default

                Specifies if binding is cacheable +False by default

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                Identifiable
                +
              13. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              14. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + + val + + + lifecycle: BindingLifecycle[Any] + +

                + + Permalink + + +

                binding's lifecycle (empty by default)

                binding's lifecycle (empty by default)

                Definition Classes
                ProviderBinding → BindingWithLifecycle
                +
              17. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + target: Any + +

                + + Permalink + + + +
              22. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from BindingWithLifecycle

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/RawBinding.html b/latest/api/scaldi/RawBinding.html new file mode 100644 index 0000000..dace574 --- /dev/null +++ b/latest/api/scaldi/RawBinding.html @@ -0,0 +1,592 @@ + + + + RawBinding - scaldi.RawBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              RawBinding

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + RawBinding(value: Any, identifiers: List[Identifier]) extends Binding with Product with Serializable + +

              + +

              Binding with a raw value, not converted to any specific type (value from system properties, configuration, etc.).

              value

              value of the binding

              identifiers

              identifiers defining the binding

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Binding, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. RawBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Binding
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + RawBinding(value: Any, identifiers: List[Identifier]) + +

                + + Permalink + + +

                value

                value of the binding

                identifiers

                identifiers defining the binding

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + condition: None.type + +

                + + Permalink + + +

                Stores condition for binding.

                Stores condition for binding. +Used for conditional binding +

                returns

                Option with function returning condition

                Definition Classes
                RawBinding → Identifiable
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + + def + + + get: Some[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined +

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                RawBinding → Binding
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +

                identifiers defining the binding

                identifiers defining the binding

                Definition Classes
                RawBinding → Identifiable
                +
              12. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default +

                Specifies if binding is cacheable +False by default +

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                RawBinding → Identifiable
                +
              13. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              14. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + val + + + value: Any + +

                + + Permalink + + +

                value of the binding

                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Binding

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/RawInjector.html b/latest/api/scaldi/RawInjector.html new file mode 100644 index 0000000..fcfbaa5 --- /dev/null +++ b/latest/api/scaldi/RawInjector.html @@ -0,0 +1,615 @@ + + + + RawInjector - scaldi.RawInjector + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              RawInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + RawInjector extends Injector + +

              + +

              Abstract Injector implementation that may be extended by other injectors that get values from +specific source (command line, typesafe config, properties, etc.) +

              + Linear Supertypes +
              Injector, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. RawInjector
              2. Injector
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + getRawValue(name: String): Option[String] + +

                + + Permalink + + +

                Used to retrieve value from other places than modules (config, system, etc.).

                Used to retrieve value from other places than modules (config, system, etc.).

                name

                name of the value

                returns

                raw value defined by name

                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[RawInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, RawInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + def + + + discoverBinding(name: String, tpe: scala.reflect.api.JavaUniverse.Type, ids: List[Identifier] = Nil): Option[Binding] + +

                + + Permalink + + +

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                name

                name of the value to bind

                tpe

                type of the value to bind

                ids

                identifiers of the resulting binding

                returns

                option with resulting binding (None if binding was not found by name)

                Attributes
                protected
                +
              9. + + +

                + + + def + + + discoverBinding(ids: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Retrieves bindings from cache based on supplied identifiers.

                Retrieves bindings from cache based on supplied identifiers.

                ids

                identifiers describing binding

                returns

                found binding, None if binding was not found

                Attributes
                protected
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                RawInjector → Injector
                +
              14. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                RawInjector → Injector
                +
              15. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              18. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              23. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ReflectionBinder$ReflectiveBinding.html b/latest/api/scaldi/ReflectionBinder$ReflectiveBinding.html new file mode 100644 index 0000000..d4c9378 --- /dev/null +++ b/latest/api/scaldi/ReflectionBinder$ReflectiveBinding.html @@ -0,0 +1,588 @@ + + + + ReflectiveBinding - scaldi.ReflectionBinder.ReflectiveBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi.ReflectionBinder

              +

              ReflectiveBinding

              Related Doc: + package ReflectionBinder +

              + + Permalink + + +
              + +

              + + + case class + + + ReflectiveBinding(fn: () ⇒ Option[Any], identifiers: List[Identifier]) extends Binding with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Binding, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ReflectiveBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Binding
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + ReflectiveBinding(fn: () ⇒ Option[Any], identifiers: List[Identifier]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + condition: None.type + +

                + + Permalink + + +

                Stores condition for binding.

                Stores condition for binding. +Used for conditional binding

                returns

                Option with function returning condition

                Definition Classes
                ReflectiveBinding → Identifiable
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + + val + + + fn: () ⇒ Option[Any] + +

                + + Permalink + + + +
              10. + + +

                + + + def + + + get: Option[Any] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                ReflectiveBinding → Binding
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +
                Definition Classes
                ReflectiveBinding → Identifiable
                +
              13. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default

                Specifies if binding is cacheable +False by default

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                Identifiable
                +
              14. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              15. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default

                Defines if binding is lazy or not +False by default

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                Identifiable
                +
              16. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              17. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Binding

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ReflectionBinder.html b/latest/api/scaldi/ReflectionBinder.html new file mode 100644 index 0000000..ea7bc19 --- /dev/null +++ b/latest/api/scaldi/ReflectionBinder.html @@ -0,0 +1,525 @@ + + + + ReflectionBinder - scaldi.ReflectionBinder + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              ReflectionBinder

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + ReflectionBinder extends AnyRef + +

              + +
              Annotations
              + @deprecated + +
              Deprecated

              (Since version 0.5) ReflectionBinder is deprecated and will be removed soon. As an alternative you can use WordBinder or create your own injector that is marked as ImmutableInjector.

              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ReflectionBinder
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + +

                + + + case class + + + ReflectiveBinding(fn: () ⇒ Option[Any], identifiers: List[Identifier]) extends Binding with Product with Serializable + +

                + + Permalink + + + +
              +
              + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + lazy val + + + reflectiveBindings: List[Binding] + +

                + + Permalink + + + +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/RequiredIdentifier.html b/latest/api/scaldi/RequiredIdentifier.html new file mode 100644 index 0000000..cf6d453 --- /dev/null +++ b/latest/api/scaldi/RequiredIdentifier.html @@ -0,0 +1,529 @@ + + + + RequiredIdentifier - scaldi.RequiredIdentifier + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              RequiredIdentifier

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + RequiredIdentifier(delegate: Identifier, isRequired: Boolean) extends Identifier with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Identifier, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. RequiredIdentifier
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Identifier
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + RequiredIdentifier(delegate: Identifier, isRequired: Boolean) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + val + + + delegate: Identifier + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              11. + + +

                + + + val + + + isRequired: Boolean + +

                + + Permalink + + + +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + required: Boolean + +

                + + Permalink + + +
                Definition Classes
                RequiredIdentifier → Identifier
                +
              16. + + +

                + + + def + + + sameAs(other: Identifier): Boolean + +

                + + Permalink + + +
                Definition Classes
                RequiredIdentifier → Identifier
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Identifier

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/ShutdownHookLifecycleManager.html b/latest/api/scaldi/ShutdownHookLifecycleManager.html new file mode 100644 index 0000000..f3d2b27 --- /dev/null +++ b/latest/api/scaldi/ShutdownHookLifecycleManager.html @@ -0,0 +1,538 @@ + + + + ShutdownHookLifecycleManager - scaldi.ShutdownHookLifecycleManager + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              ShutdownHookLifecycleManager

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + ShutdownHookLifecycleManager extends LifecycleManager + +

              + +
              + Linear Supertypes +
              LifecycleManager, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ShutdownHookLifecycleManager
              2. LifecycleManager
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + +
                Definition Classes
                LifecycleManager
                +
              5. + + +

                + + + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              9. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              10. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from LifecycleManager

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/SimpleBinding.html b/latest/api/scaldi/SimpleBinding.html new file mode 100644 index 0000000..09afba1 --- /dev/null +++ b/latest/api/scaldi/SimpleBinding.html @@ -0,0 +1,627 @@ + + + + SimpleBinding - scaldi.SimpleBinding + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              SimpleBinding

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + SimpleBinding[T](boundValue: Option[() ⇒ T], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, cacheable: Boolean = false, eager: Boolean = false) extends Binding with Product with Serializable + +

              + +

              Binding that only contains a value. +As it is just a fixed value, no lyfecycle is needed

              T

              binding's type

              boundValue

              binding's value

              identifiers

              binding's identifiers (empty by default)

              condition

              binding's conditions (empty by default)

              cacheable

              if binding should be cacheable (false by default)

              eager

              if binding is eager (non lazy) (false by default)

              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Binding, Identifiable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. SimpleBinding
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Binding
              7. Identifiable
              8. AnyRef
              9. Any
              10. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + SimpleBinding(boundValue: Option[() ⇒ T], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, cacheable: Boolean = false, eager: Boolean = false) + +

                + + Permalink + + +

                boundValue

                binding's value

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                cacheable

                if binding should be cacheable (false by default)

                eager

                if binding is eager (non lazy) (false by default)

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + val + + + boundValue: Option[() ⇒ T] + +

                + + Permalink + + +

                binding's value

                +
              6. + + +

                + + + val + + + cacheable: Boolean + +

                + + Permalink + + +

                if binding should be cacheable (false by default)

                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + val + + + condition: Option[() ⇒ Condition] + +

                + + Permalink + + +

                binding's conditions (empty by default)

                binding's conditions (empty by default)

                Definition Classes
                SimpleBinding → Identifiable
                +
              9. + + +

                + + + val + + + eager: Boolean + +

                + + Permalink + + +

                if binding is eager (non lazy) (false by default)

                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              12. + + +

                + + + lazy val + + + get: Option[T] + +

                + + Permalink + + +

                Retrieves stored binding's value, used during binding lookup during injection.

                Retrieves stored binding's value, used during binding lookup during injection. +If equals to None, binding is considered undefined +

                returns

                Option with binding's value (or None if the binding is undefined)

                Definition Classes
                SimpleBinding → Binding
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + val + + + identifiers: List[Identifier] + +

                + + Permalink + + +

                binding's identifiers (empty by default)

                binding's identifiers (empty by default)

                Definition Classes
                SimpleBinding → Identifiable
                +
              15. + + +

                + + + def + + + isCacheable: Boolean + +

                + + Permalink + + +

                Specifies if binding is cacheable +False by default +

                Specifies if binding is cacheable +False by default +

                returns

                Boolean true if binding is cacheable, false otherwise

                Definition Classes
                SimpleBinding → Identifiable
                +
              16. + + +

                + + + def + + + isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifiable
                +
              17. + + +

                + + + def + + + isEager: Boolean + +

                + + Permalink + + +

                Defines if binding is lazy or not +False by default +

                Defines if binding is lazy or not +False by default +

                returns

                Boolean true if not lazy, false otherwise

                Definition Classes
                SimpleBinding → Identifiable
                +
              18. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              19. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Binding

              +
              +

              Inherited from Identifiable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/SimpleContainerInjector.html b/latest/api/scaldi/SimpleContainerInjector.html new file mode 100644 index 0000000..21f668d --- /dev/null +++ b/latest/api/scaldi/SimpleContainerInjector.html @@ -0,0 +1,817 @@ + + + + SimpleContainerInjector - scaldi.SimpleContainerInjector + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              SimpleContainerInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + SimpleContainerInjector extends MutableInjectorUser with InjectorWithLifecycle[SimpleContainerInjector] with ShutdownHookLifecycleManager + +

              + +

              Container that transforms a list of bindings into a valid Injector

              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. SimpleContainerInjector
              2. ShutdownHookLifecycleManager
              3. LifecycleManager
              4. InjectorWithLifecycle
              5. Initializeable
              6. Freezable
              7. MutableInjectorUser
              8. MutableInjector
              9. Injector
              10. AnyRef
              11. Any
              12. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + SimpleContainerInjector(bindings: (Injector) ⇒ List[BindingWithLifecycle]) + +

                + + Permalink + + +

                bindings

                function transforming injector into a list of bindings

                +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[SimpleContainerInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, SimpleContainerInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + + val + + + IgnoringErrorHandler: (Throwable) ⇒ Boolean + +

                + + Permalink + + +
                Definition Classes
                LifecycleManager
                +
              7. + + +

                + + + def + + + addDestroyable(fn: () ⇒ Unit): Unit + +

                + + Permalink + + + +
              8. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              9. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              10. + + +

                + + + def + + + destroy(errorHandler: (Throwable) ⇒ Boolean = IgnoringErrorHandler): Unit + +

                + + Permalink + + + +
              11. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              14. + + +

                + + final + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              15. + + +

                + + + def + + + getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] + +

                + + Permalink + + +

                Binding lookup logic +

                Binding lookup logic +

                identifiers

                list of identifiers identifying a depencency

                returns

                a binding identified by identifiers

                Definition Classes
                SimpleContainerInjector → InjectorWithLifecycle
                +
              16. + + +

                + + final + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                InjectorWithLifecycle → Injector
                +
              17. + + +

                + + + def + + + getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] + +

                + + Permalink + + +

                Bindings lookup logic +

                Bindings lookup logic +

                identifiers

                list of identifiers identifying depencencies

                returns

                a list of bindings identified by identifiers

                Definition Classes
                SimpleContainerInjector → InjectorWithLifecycle
                +
              18. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + + def + + + init(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +

                Initializes bindings that are not Lazy +

                Initializes bindings that are not Lazy +

                lifecycleManager

                entity that will manage the lifecycle of the eager bindings

                Attributes
                protected
                Definition Classes
                SimpleContainerInjector → Initializeable
                +
              21. + + +

                + + + def + + + initNonLazy(): SimpleContainerInjector + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              22. + + +

                + + implicit + def + + + injector: Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              23. + + +

                + + implicit + val + + + injectorFn: () ⇒ Injector + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              24. + + +

                + + + def + + + injector_=(newParentInjector: Injector): Unit + +

                + + Permalink + + +
                Definition Classes
                MutableInjectorUser
                +
              25. + + +

                + + + def + + + isFrozen: Boolean + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                Initializeable → Freezable
                +
              26. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              27. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              28. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              29. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              30. + + +

                + + + def + + + partialInit(lifecycleManager: LifecycleManager): Option[() ⇒ Unit] + +

                + + Permalink + + +
                Definition Classes
                Initializeable
                +
              31. + + +

                + + + lazy val + + + preparedBindings: List[BindingWithLifecycle] + +

                + + Permalink + + + +
              32. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              33. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              34. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              35. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              36. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from ShutdownHookLifecycleManager

              +
              +

              Inherited from LifecycleManager

              +
              +

              Inherited from Freezable

              +
              +

              Inherited from MutableInjectorUser

              +
              +

              Inherited from MutableInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/StaticModule.html b/latest/api/scaldi/StaticModule.html new file mode 100644 index 0000000..837ea38 --- /dev/null +++ b/latest/api/scaldi/StaticModule.html @@ -0,0 +1,921 @@ + + + + StaticModule - scaldi.StaticModule + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              StaticModule

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + StaticModule extends ReflectionBinder with ImmutableInjector with Injectable + +

              + +
              Annotations
              + @deprecated + +
              Deprecated

              (Since version 0.5)

              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. StaticModule
              2. Injectable
              3. Wire
              4. ImmutableInjector
              5. Injector
              6. ReflectionBinder
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + +

                + + + case class + + + ReflectiveBinding(fn: () ⇒ Option[Any], identifiers: List[Identifier]) extends Binding with Product with Serializable + +

                + + Permalink + + +
                Definition Classes
                ReflectionBinder
                +
              +
              + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[StaticModule.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, StaticModule.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + val + + + by: ByWord + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with default values for the injection.

                Convenience field to make the injection look more readable when used with default values for the injection.

                Example: +inject [Database] (by default defaultDb) +

                Attributes
                protected
                Definition Classes
                Injectable
                +
              8. + + +

                + + implicit + def + + + canBeIdentifiedToConstraints[T](target: T)(implicit arg0: CanBeIdentifier[T]): InjectConstraints[Nothing] + +

                + + Permalink + + +

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Implicit cast of classes that can be identifiers to an InjectConstraints with the identified as a first element.

                Often used when a list of identifiers should be passed (for example for inject(constraint) method).

                This lets us to put the identifier in a first place to make the parameters look readable. +

                T

                type that qualifies as an identifier

                target

                Instance of a class that qualifies as an identifier

                returns

                InjectConstraints

                Attributes
                protected
                Definition Classes
                Injectable
                +
              9. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                StaticModule → Injector
                +
              14. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                StaticModule → Injector
                +
              15. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + + val + + + identified: IdentifiedWord[Nothing] + +

                + + Permalink + + +

                Convenience field to make the injection look more readable when used with identifiers.

                Convenience field to make the injection look more readable when used with identifiers.

                Example: +inject [Database] (identified by 'local) +

                Attributes
                protected
                Definition Classes
                Injectable
                +
              18. + + +

                + + + def + + + inject[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency defined by a constraint.

                Injects a dependency defined by a constraint.

                Usually used when there are more than one injections for a defined type T

                Example:

                binding identifiedBy 'host to "hostName"
                +val host = inject[String]('host)  // equals to "hostName"
                +val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case
                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of the type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              19. + + +

                + + + def + + + inject[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): T + +

                + + Permalink + + +

                Injects a dependency that was previously defined in a module

                Injects a dependency that was previously defined in a module

                Example: +val database = inject [Database] // database can now be used as an instance of Database class +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              20. + + +

                + + + def + + + injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] + +

                + + Permalink + + +

                Injects all dependencies that are defined by identifiers.

                Injects all dependencies that are defined by identifiers. +

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                returns

                a list of injected instances defined by identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              21. + + +

                + + + def + + + injectAllOfType[T](identifiers: Identifier*)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers.

                Inject all dependencies of type T that were defined in a module and that are defined by supplied identifiers. +

                T

                type of the injected dependency

                identifiers

                identifiers that were defined in module for requested injections

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint and identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              22. + + +

                + + + def + + + injectAllOfType[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): List[T] + +

                + + Permalink + + +

                Inject all dependencies of type T that were defined in a module.

                Inject all dependencies of type T that were defined in a module. +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a list of injected instances satisfying the type T constraint

                Attributes
                protected
                Definition Classes
                Injectable
                +
              23. + + +

                + + + def + + + injectProvider[T](constraints: ⇒ InjectConstraints[T])(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Injects a dependency (defined by a constraint) that was previously defined as a provider in a module.

                Usually used when there are more than one provider for a defined type T. +

                T

                type of the injected dependency

                constraints

                constraints helping to define what dependency of type T + to inject (typically an identifier, string or a default value)

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              24. + + +

                + + + def + + + injectProvider[T](implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], nn: NotNothing[T]): () ⇒ T + +

                + + Permalink + + +

                Injects a dependency that was previously defined as a provider in a module +

                Injects a dependency that was previously defined as a provider in a module +

                T

                type of the injected dependency

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                nn

                ensures, that type T is not inferred as Nothing by scala compiler, + since inject needs to know the actual type at the runtime

                returns

                a new instance of injected dependency

                Attributes
                protected
                Definition Classes
                Injectable
                +
              25. + + +

                + + + def + + + injectWithConstructorDefault[T, C](paramName: String)(implicit injector: Injector, tt: scala.reflect.api.JavaUniverse.TypeTag[T], ct: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + +

                Injects a dependency defined by type T.

                Injects a dependency defined by type T. If dependency is not found, initializes it with the default +value from the constructor of type T.

                This implies, that constructor must have one constructor with parameter paramName which has +a default value. Method is part of injected macro implementation and not intended to be used outside of it.

                Uses reflection. +

                T

                type of the injected dependency

                C

                class of constructor in case dependency cannot be found by T identifier

                paramName

                name of the constructor argument with a default value

                injector

                implicit Injector, should be defined in the scope. It's used to lookup bindings

                tt

                ensures that meta-information if type T is available at the runtime

                ct

                ensures that meta-information if type C is available at the runtime

                returns

                instance of injected dependency. If not found by, initializes one using constructor C

                Attributes
                protected
                Definition Classes
                Injectable
                +
              26. + + +

                + + + def + + + injectWithDefault[T](injector: Injector, default: ⇒ T)(identifiers: List[Identifier]): T + +

                + + Permalink + + +

                Setup an injection that returns default value if an injection with supplied identifiers is not found.

                Setup an injection that returns default value if an injection with supplied identifiers is not found. +

                T

                type of the injected dependency

                injector

                current Injector, used to lookup bindings

                default

                default value to return in case injection is not found

                identifiers

                identifiers that define requested injection

                returns

                injection defined by identifiers or default value if injection is not found

                Attributes
                protected
                Definition Classes
                Injectable
                +
              27. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              28. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              29. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + +
                Definition Classes
                Wire
                +
              30. + + +

                + + implicit + val + + + injector: Injector + +

                + + Permalink + + + +
              31. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              32. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              33. + + +

                + + + def + + + noBindingFound(identifiers: List[Identifier]): Nothing + +

                + + Permalink + + +

                Helper method for throwing a readable exception when a binding could not be found.

                Helper method for throwing a readable exception when a binding could not be found. +

                identifiers

                a list of identifiers

                Attributes
                protected
                Definition Classes
                Injectable
                +
              34. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              35. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              36. + + +

                + + + lazy val + + + reflectiveBindings: List[Binding] + +

                + + Permalink + + +
                Definition Classes
                ReflectionBinder
                +
              37. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              38. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              39. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              40. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              41. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Injectable

              +
              +

              Inherited from Wire

              +
              +

              Inherited from ImmutableInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from ReflectionBinder

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/StringIdentifier.html b/latest/api/scaldi/StringIdentifier.html new file mode 100644 index 0000000..34465a1 --- /dev/null +++ b/latest/api/scaldi/StringIdentifier.html @@ -0,0 +1,512 @@ + + + + StringIdentifier - scaldi.StringIdentifier + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              StringIdentifier

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + StringIdentifier(str: String) extends Identifier with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Identifier, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. StringIdentifier
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Identifier
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + StringIdentifier(str: String) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              8. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              10. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + + def + + + required: Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifier
                +
              14. + + +

                + + + def + + + sameAs(other: Identifier): Boolean + +

                + + Permalink + + +
                Definition Classes
                StringIdentifier → Identifier
                +
              15. + + +

                + + + val + + + str: String + +

                + + Permalink + + + +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Identifier

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/SysPropCondition.html b/latest/api/scaldi/SysPropCondition.html new file mode 100644 index 0000000..f59bf27 --- /dev/null +++ b/latest/api/scaldi/SysPropCondition.html @@ -0,0 +1,563 @@ + + + + SysPropCondition - scaldi.SysPropCondition + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              SysPropCondition

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + SysPropCondition(name: String, value: Option[String] = None) extends Condition with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Condition, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. SysPropCondition
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Condition
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + SysPropCondition(name: String, value: Option[String] = None) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + and(otherCond: Condition): AndCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              11. + + +

                + + + val + + + name: String + +

                + + Permalink + + + +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + + def + + + or(otherCond: Condition): OrCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              16. + + +

                + + + def + + + satisfies(identifiers: List[Identifier]): Boolean + +

                + + Permalink + + +
                Definition Classes
                SysPropCondition → Condition
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + unary_!: NotCondition + +

                + + Permalink + + +
                Definition Classes
                Condition
                +
              19. + + +

                + + + val + + + value: Option[String] + +

                + + Permalink + + + +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Condition

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/SystemPropertiesInjector$.html b/latest/api/scaldi/SystemPropertiesInjector$.html new file mode 100644 index 0000000..932ffbf --- /dev/null +++ b/latest/api/scaldi/SystemPropertiesInjector$.html @@ -0,0 +1,611 @@ + + + + SystemPropertiesInjector - scaldi.SystemPropertiesInjector + + + + + + + + + + + + + + + +
              + Object +

              scaldi

              +

              SystemPropertiesInjector

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + SystemPropertiesInjector extends RawInjector + +

              + +

              Used to look up for simple bindings in system properties. +

              + Linear Supertypes +
              RawInjector, Injector, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. SystemPropertiesInjector
              2. RawInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[SystemPropertiesInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, SystemPropertiesInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + def + + + discoverBinding(name: String, tpe: scala.reflect.api.JavaUniverse.Type, ids: List[Identifier] = Nil): Option[Binding] + +

                + + Permalink + + +

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                name

                name of the value to bind

                tpe

                type of the value to bind

                ids

                identifiers of the resulting binding

                returns

                option with resulting binding (None if binding was not found by name)

                Attributes
                protected
                Definition Classes
                RawInjector
                +
              9. + + +

                + + + def + + + discoverBinding(ids: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Retrieves bindings from cache based on supplied identifiers.

                Retrieves bindings from cache based on supplied identifiers.

                ids

                identifiers describing binding

                returns

                found binding, None if binding was not found

                Attributes
                protected
                Definition Classes
                RawInjector
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                RawInjector → Injector
                +
              14. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                RawInjector → Injector
                +
              15. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + getRawValue(name: String): Option[String] + +

                + + Permalink + + +

                Used to retrieve value from other places than modules (config, system, etc.).

                Used to retrieve value from other places than modules (config, system, etc.). +

                name

                system property's name

                returns

                system property defined by name

                Definition Classes
                SystemPropertiesInjector → RawInjector
                +
              17. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              19. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              26. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from RawInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/TypeTagIdentifier$.html b/latest/api/scaldi/TypeTagIdentifier$.html new file mode 100644 index 0000000..163aa0e --- /dev/null +++ b/latest/api/scaldi/TypeTagIdentifier$.html @@ -0,0 +1,505 @@ + + + + TypeTagIdentifier - scaldi.TypeTagIdentifier + + + + + + + + + + + + + + + + + +

              + + + object + + + TypeTagIdentifier extends Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. TypeTagIdentifier
              2. Serializable
              3. Serializable
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + + def + + + typeId[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): TypeTagIdentifier + +

                + + Permalink + + + +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/TypeTagIdentifier.html b/latest/api/scaldi/TypeTagIdentifier.html new file mode 100644 index 0000000..6394762 --- /dev/null +++ b/latest/api/scaldi/TypeTagIdentifier.html @@ -0,0 +1,514 @@ + + + + TypeTagIdentifier - scaldi.TypeTagIdentifier + + + + + + + + + + + + + + + + + +

              + + + case class + + + TypeTagIdentifier(tpe: scala.reflect.api.JavaUniverse.Type) extends Identifier with Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, Identifier, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. TypeTagIdentifier
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. Identifier
              7. AnyRef
              8. Any
              9. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + TypeTagIdentifier(tpe: scala.reflect.api.JavaUniverse.Type) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              8. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              10. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + + def + + + required: Boolean + +

                + + Permalink + + +
                Definition Classes
                Identifier
                +
              14. + + +

                + + + def + + + sameAs(other: Identifier): Boolean + +

                + + Permalink + + +
                Definition Classes
                TypeTagIdentifier → Identifier
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + val + + + tpe: scala.reflect.api.JavaUniverse.Type + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from Identifier

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/TypesafeConfigInjector$.html b/latest/api/scaldi/TypesafeConfigInjector$.html new file mode 100644 index 0000000..cab5f6e --- /dev/null +++ b/latest/api/scaldi/TypesafeConfigInjector$.html @@ -0,0 +1,536 @@ + + + + TypesafeConfigInjector - scaldi.TypesafeConfigInjector + + + + + + + + + + + + + + + + + +

              + + + object + + + TypesafeConfigInjector + +

              + +

              Factories to handle different type of Typesafe config's source. +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. TypesafeConfigInjector
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + + def + + + apply(config: Config): TypesafeConfigInjector + +

                + + Permalink + + +

                Initializes injector with the supplied config.

                Initializes injector with the supplied config.

                config

                configuration instance

                returns

                initialized injector

                +
              5. + + +

                + + + def + + + apply(baseName: String): TypesafeConfigInjector + +

                + + Permalink + + +

                Initializes injector with the configuration found at basename.

                Initializes injector with the configuration found at basename.

                baseName

                the base name of configuration file

                returns

                initialized injector

                +
              6. + + +

                + + + def + + + apply(): TypesafeConfigInjector + +

                + + Permalink + + +

                Initializes injector with application's configuration.

                Initializes injector with application's configuration.

                returns

                initialized injector

                +
              7. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              8. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              9. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              10. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/TypesafeConfigInjector.html b/latest/api/scaldi/TypesafeConfigInjector.html new file mode 100644 index 0000000..f2c58e0 --- /dev/null +++ b/latest/api/scaldi/TypesafeConfigInjector.html @@ -0,0 +1,613 @@ + + + + TypesafeConfigInjector - scaldi.TypesafeConfigInjector + + + + + + + + + + + + + + + + + +

              + + + class + + + TypesafeConfigInjector extends RawInjector + +

              + +

              Injector with bindings found in supplied typesafe configuration

              + Linear Supertypes +
              RawInjector, Injector, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. TypesafeConfigInjector
              2. RawInjector
              3. Injector
              4. AnyRef
              5. Any
              6. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + + def + + + ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[TypesafeConfigInjector.this.type, I, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              4. + + +

                + + + def + + + ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, TypesafeConfigInjector.this.type, R]): R + +

                + + Permalink + + +
                Definition Classes
                Injector
                +
              5. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              6. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + + def + + + discoverBinding(name: String, tpe: scala.reflect.api.JavaUniverse.Type, ids: List[Identifier]): Option[RawBinding] + +

                + + Permalink + + +

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers.

                Retrieves value by name, converts it to specified type and associates it with supplied identifiers. +

                name

                name of the value to bind

                tpe

                type of the value to bind

                ids

                identifiers of the resulting binding

                returns

                option with resulting binding (None if binding was not found by name)

                Attributes
                protected
                Definition Classes
                TypesafeConfigInjector → RawInjector
                +
              9. + + +

                + + + def + + + discoverBinding(ids: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Retrieves bindings from cache based on supplied identifiers.

                Retrieves bindings from cache based on supplied identifiers.

                ids

                identifiers describing binding

                returns

                found binding, None if binding was not found

                Attributes
                protected
                Definition Classes
                RawInjector
                +
              10. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              11. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + + def + + + getBinding(identifiers: List[Identifier]): Option[Binding] + +

                + + Permalink + + +

                Single binding lookup +

                Single binding lookup +

                identifiers

                binding's identifiers

                returns

                option with binding (None if not found)

                Definition Classes
                RawInjector → Injector
                +
              14. + + +

                + + + def + + + getBindings(identifiers: List[Identifier]): List[Binding] + +

                + + Permalink + + +

                List of bindings lookup +

                List of bindings lookup +

                identifiers

                bindings identifiers

                returns

                list of found bindings

                Definition Classes
                RawInjector → Injector
                +
              15. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              16. + + +

                + + + def + + + getRawValue(name: String): Nothing + +

                + + Permalink + + +

                Used to retrieve value from other places than modules (config, system, etc.).

                Used to retrieve value from other places than modules (config, system, etc.). +

                name

                name of the value

                returns

                raw value defined by name

                Definition Classes
                TypesafeConfigInjector → RawInjector
                +
              17. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              19. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              24. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              26. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from RawInjector

              +
              +

              Inherited from Injector

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/Wire.html b/latest/api/scaldi/Wire.html new file mode 100644 index 0000000..ed9727d --- /dev/null +++ b/latest/api/scaldi/Wire.html @@ -0,0 +1,536 @@ + + + + Wire - scaldi.Wire + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              Wire

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + Wire extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Wire
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[String, _]*): T + +

                + + Permalink + + + +
              12. + + +

                + + macro + def + + + injected[T](overrides: Tuple2[Symbol, _]*): T + +

                + + Permalink + + + +
              13. + + +

                + + macro + def + + + injected[T]: T + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/WireBuilder$.html b/latest/api/scaldi/WireBuilder$.html new file mode 100644 index 0000000..0d2584f --- /dev/null +++ b/latest/api/scaldi/WireBuilder$.html @@ -0,0 +1,518 @@ + + + + WireBuilder - scaldi.WireBuilder + + + + + + + + + + + + + + + +
              + Object/Class +

              scaldi

              +

              WireBuilder

              + Related Docs: + class WireBuilder + | package scaldi +

              + + Permalink + + +
              + +

              + + + object + + + WireBuilder + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. WireBuilder
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + + def + + + wireImpl[T](c: Context)(overrides: scala.reflect.macros.blackbox.Context.Tree*)(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[T] + +

                + + Permalink + + + +
              21. + + +

                + + + def + + + wireNoArgImpl[T](c: Context)(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[T] + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/WireBuilder.html b/latest/api/scaldi/WireBuilder.html new file mode 100644 index 0000000..ae6aeb0 --- /dev/null +++ b/latest/api/scaldi/WireBuilder.html @@ -0,0 +1,623 @@ + + + + WireBuilder - scaldi.WireBuilder + + + + + + + + + + + + + + + +
              + Class/Object +

              scaldi

              +

              WireBuilder

              + Related Docs: + object WireBuilder + | package scaldi +

              + + Permalink + + +
              + +

              + + + class + + + WireBuilder extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. WireBuilder
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + WireBuilder() + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + build[T](c: Context)(overrides: Seq[scala.reflect.macros.blackbox.Context.Tree])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[T] + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + error[T](c: Context, message: String): scala.reflect.macros.blackbox.Context.Expr[T] + +

                + + Permalink + + + +
              10. + + +

                + + + def + + + extractProperty(c: Context)(tree: scala.reflect.macros.blackbox.Context.Tree): Either[String, (String, scala.reflect.macros.blackbox.Context.Tree)] + +

                + + Permalink + + + +
              11. + + +

                + + + def + + + extractPropertyName(c: Context)(tree: scala.reflect.macros.blackbox.Context.Tree): String + +

                + + Permalink + + + +
              12. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              13. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              15. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              16. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + + def + + + wireParam(c: Context)(param: scala.reflect.macros.blackbox.Context.Symbol, wiredType: scala.reflect.macros.blackbox.Context.Type, defaultSupported: Boolean, validOverrides: Map[String, scala.reflect.macros.blackbox.Context.Tree]): Either[String, scala.reflect.macros.blackbox.Context.Tree] + +

                + + Permalink + + + +
              25. + + +

                + + + def + + + wireParamList(c: Context)(paramList: List[scala.reflect.macros.blackbox.Context.Symbol], wiredType: scala.reflect.macros.blackbox.Context.Type, defaultSupported: Boolean, validOverrides: Map[String, scala.reflect.macros.blackbox.Context.Tree]): List[Either[String, scala.reflect.macros.blackbox.Context.Tree]] + +

                + + Permalink + + + +
              26. + + +

                + + + def + + + wireType[T](c: Context)(validOverrides: Map[String, scala.reflect.macros.blackbox.Context.Tree])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[T] + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/WordBinder.html b/latest/api/scaldi/WordBinder.html new file mode 100644 index 0000000..cfa0e6d --- /dev/null +++ b/latest/api/scaldi/WordBinder.html @@ -0,0 +1,624 @@ + + + + WordBinder - scaldi.WordBinder + + + + + + + + + + + + + + + +
              + Trait +

              scaldi

              +

              WordBinder

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + trait + + + WordBinder extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. WordBinder
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + injector: Injector + +

                + + Permalink + + +
                Attributes
                protected
                +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + bind[T](implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): BindHelper[T] + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + binding: BindHelper[Any] + +

                + + Permalink + + + +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + initEagerWordBindings(lifecycleManager: LifecycleManager): () ⇒ Unit + +

                + + Permalink + + +
                Attributes
                protected
                +
              14. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              15. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + notRequired(identifier: Identifier): Identifier + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              19. + + +

                + + + def + + + required(identifier: Identifier): Identifier + +

                + + Permalink + + + +
              20. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              21. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              22. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              24. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              25. + + +

                + + + def + + + when(condition: ⇒ Condition)(fn: ⇒ Unit): Unit + +

                + + Permalink + + + +
              26. + + +

                + + + lazy val + + + wordBindings: List[BindingWithLifecycle] + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/WordBindingProvider.html b/latest/api/scaldi/WordBindingProvider.html new file mode 100644 index 0000000..8f44654 --- /dev/null +++ b/latest/api/scaldi/WordBindingProvider.html @@ -0,0 +1,476 @@ + + + + WordBindingProvider - scaldi.WordBindingProvider + + + + + + + + + + + + + + + +
              + Class +

              scaldi

              +

              WordBindingProvider

              Related Doc: + package scaldi +

              + + Permalink + + +
              + +

              + + + case class + + + WordBindingProvider[T](bindingFn: (List[Identifier], Option[() ⇒ Condition], BindingLifecycle[Any]) ⇒ BindingWithLifecycle) extends Product with Serializable + +

              + +
              + Linear Supertypes +
              Serializable, Serializable, Product, Equals, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. WordBindingProvider
              2. Serializable
              3. Serializable
              4. Product
              5. Equals
              6. AnyRef
              7. Any
              8. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + WordBindingProvider(bindingFn: (List[Identifier], Option[() ⇒ Condition], BindingLifecycle[Any]) ⇒ BindingWithLifecycle) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + val + + + bindingFn: (List[Identifier], Option[() ⇒ Condition], BindingLifecycle[Any]) ⇒ BindingWithLifecycle + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              11. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              12. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              16. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              17. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Serializable

              +
              +

              Inherited from Product

              +
              +

              Inherited from Equals

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/package.html b/latest/api/scaldi/package.html new file mode 100644 index 0000000..f8c3beb --- /dev/null +++ b/latest/api/scaldi/package.html @@ -0,0 +1,1495 @@ + + + + scaldi - scaldi + + + + + + + + + + + + + + + +
              + Package + +

              scaldi

              + + Permalink + + +
              + +

              + + + package + + + scaldi + +

              + +

              Scaldi - is Scala dependency injection library. Basically Scala already have everything you need for dependency +injection. But still some things can be made easier. Goal of the project is to provide more standard and easy way +to make dependency injection in Scala projects consuming power of the Scala language. With Scaldi you can define +your application modules in pure Scala without any annotations or XML.

              For more information see: http://olegilyenko.github.com/scaldi/Scaldi.html +

              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. scaldi
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + +

                + + + case class + + + AndCondition(conditions: List[Condition]) extends Condition with Product with Serializable + +

                + + Permalink + + + +
              2. + + +

                + + + class + + + BindHelper[R] extends CanBeIdentified[BindHelper[R]] with CanBeConditional[BindHelper[R]] + +

                + + Permalink + + + +
              3. + + +

                + + + trait + + + Binding extends Identifiable + +

                + + Permalink + + +

                Binding is defined in a Module as Type -> instance relationship (sometimes +with additional identifiers).

                Binding is defined in a Module as Type -> instance relationship (sometimes +with additional identifiers). +I can be injected in classes where implicit Injector is available. +Binding can be defined (containing a value) or undefined. +

                +
              4. + + +

                + + + class + + + BindingException extends RuntimeException + +

                + + Permalink + + + +
              5. + + +

                + + + case class + + + BindingLifecycle[-T](initialize: Option[(T) ⇒ Unit] = None, destroy: Option[(T) ⇒ Unit] = None) extends Product with Serializable + +

                + + Permalink + + + +
              6. + + +

                + + + trait + + + BindingWithLifecycle extends Identifiable + +

                + + Permalink + + +

                Bindings with lifecycle may have initialization and destruction handlers +

                +
              7. + + +

                + + + class + + + BoundHelper[D] extends CanBeIdentified[BoundHelper[D]] with CanBeConditional[BoundHelper[D]] with CanHaveLifecycle[BoundHelper[D], D] + +

                + + Permalink + + + +
              8. + + +

                + + + class + + + ByWord extends AnyRef + +

                + + Permalink + + +

                Helper class to make injection with default value more readable.

                +
              9. + + +

                + + + trait + + + CanBeConditional[R] extends AnyRef + +

                + + Permalink + + + +
              10. + + +

                + + + trait + + + CanBeIdentified[R] extends AnyRef + +

                + + Permalink + + + +
              11. + + +

                + + + trait + + + CanBeIdentifier[T] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              12. + + +

                + + + trait + + + CanCompose[-A, -B, +R] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              13. + + +

                + + + trait + + + CanHaveLifecycle[H, D] extends AnyRef + +

                + + Permalink + + + +
              14. + + +

                + + + trait + + + Condition extends AnyRef + +

                + + Permalink + + + +
              15. + + +

                + + + class + + + DynamicModule extends WordBinder with InjectorWithLifecycle[DynamicModule] with OpenInjectable with MutableInjectorUser with ShutdownHookLifecycleManager + +

                + + Permalink + + +

                Same as module, but with accessible Injectable's methods.

                +
              16. + + +

                + + + trait + + + Freezable extends AnyRef + +

                + + Permalink + + + +
              17. + + +

                + + + trait + + + Identifiable extends AnyRef + +

                + + Permalink + + +

                Entities that extend Identifiable can be identified using Scaldi identifiers.

                Entities that extend Identifiable can be identified using Scaldi identifiers. +They can also contain conditions. +

                +
              18. + + +

                + + + class + + + IdentifiedWord[+T] extends AnyRef + +

                + + Permalink + + +

                Helper class to make injection by identifier more readable.

                Helper class to make injection by identifier more readable. +

                T

                type of the dependency being injected

                +
              19. + + +

                + + + trait + + + Identifier extends AnyRef + +

                + + Permalink + + + +
              20. + + +

                + + + trait + + + ImmutableInjector extends Injector + +

                + + Permalink + + + +
              21. + + +

                + + + class + + + ImmutableInjectorAggregation extends Injector + +

                + + Permalink + + + +
              22. + + +

                + + + class + + + ImmutableWrapper extends Injector with ImmutableInjector + +

                + + Permalink + + + +
              23. + + +

                + + + trait + + + Initializeable[I] extends Freezable + +

                + + Permalink + + + +
              24. + + +

                + + + case class + + + InjectConstraints[+T](default: Option[() ⇒ T] = None, initialIdentifiers: List[Identifier] = Nil) extends Product with Serializable + +

                + + Permalink + + +

                A wrapper for a default value for the injection and for its identifiers.

                A wrapper for a default value for the injection and for its identifiers.

                It is here to make injection constraints look like natural language. +

                T

                type of the dependency being injected

                default

                default value for injected instance. It would be used if biding is not found in the Injector.

                initialIdentifiers

                identifiers

                +
              25. + + +

                + + + class + + + InjectException extends RuntimeException + +

                + + Permalink + + + +
              26. + + +

                + + + trait + + + Injectable extends Wire + +

                + + Permalink + + +

                Provides injection DSL.

                Provides injection DSL. You can extend it in your classes in order +to use inject methods.

                The only responsibility of this trait is to provide you with inject function +(so it just provides nice syntax for injecting dependencies).

                In order to actually find and inject dependencies, inject method always +takes an implicit parameter of type Injector.

                Example:

                Application (implicit inj: Injector) extends Injectable {
                +   protected val db = inject [Database] // database can now be used as an instance of Database class`
                +}
                +
              27. + + +

                + + + trait + + + Injector extends AnyRef + +

                + + Permalink + + + +
              28. + + +

                + + + trait + + + InjectorWithLifecycle[I <: InjectorWithLifecycle[I]] extends Injector with Initializeable[I] with MutableInjector + +

                + + Permalink + + + +
              29. + + +

                + + + case class + + + LazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

                + + Permalink + + +

                Binding that is initialized on on first use and never changes afterwards.

                Binding that is initialized on on first use and never changes afterwards.

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              30. + + +

                + + + trait + + + LifecycleManager extends AnyRef + +

                + + Permalink + + + +
              31. + + +

                + + + trait + + + LowPriorityImmutableInjectorComposition extends LowPriorityMutableInjectorComposition + +

                + + Permalink + + + +
              32. + + +

                + + + trait + + + LowPriorityMutableInjectorComposition extends AnyRef + +

                + + Permalink + + + +
              33. + + +

                + + + trait + + + Module extends WordBinder with InjectorWithLifecycle[Module] with Injectable with MutableInjectorUser with ShutdownHookLifecycleManager + +

                + + Permalink + + +

                Module is a place where you declare your bindings.

                Module is a place where you declare your bindings. +It's also the most common injector that you can use in most cases. +It's a mutable injector so it can have a lifecycle and it also provides nice DSL for the bindings.

                Module is an Injectable instance thanks to that you can inject other dependencies in module's bindings. +

                +
              34. + + +

                + + + trait + + + MutableInjector extends Injector + +

                + + Permalink + + + +
              35. + + +

                + + + class + + + MutableInjectorAggregation extends InjectorWithLifecycle[MutableInjectorAggregation] with MutableInjectorUser with ShutdownHookLifecycleManager + +

                + + Permalink + + + +
              36. + + +

                + + + trait + + + MutableInjectorUser extends MutableInjector + +

                + + Permalink + + + +
              37. + + +

                + + + case class + + + NonLazyBinding(createFn: Option[() ⇒ Any], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

                + + Permalink + + +

                Binding that is initialized at the Injector initialization phase (normally during an +application startup) and never changes afterwards.

                Binding that is initialized at the Injector initialization phase (normally during an +application startup) and never changes afterwards.

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              38. + + +

                + + + case class + + + NotCondition(condition: Condition) extends Condition with Product with Serializable + +

                + + Permalink + + + +
              39. + + +

                + + + trait + + + OpenInjectable extends Injectable + +

                + + Permalink + + +

                Exactly the same as Injectable trait, but with all methods made public +

                +
              40. + + +

                + + + case class + + + OrCondition(conditions: List[Condition]) extends Condition with Product with Serializable + +

                + + Permalink + + + +
              41. + + +

                + + + class + + + PropertiesInjector extends RawInjector + +

                + + Permalink + + +

                Used to look for simple bindings in supplied properties (hash table)

                +
              42. + + +

                + + + case class + + + ProviderBinding(createFn: () ⇒ Any, identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty) extends BindingWithLifecycle with Product with Serializable + +

                + + Permalink + + +

                Binding that is initialized on every injection with createFn function.

                Binding that is initialized on every injection with createFn function.

                createFn

                function that creates and returns value that will be associated with binding

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                lifecycle

                binding's lifecycle (empty by default)

                +
              43. + + +

                + + + case class + + + RawBinding(value: Any, identifiers: List[Identifier]) extends Binding with Product with Serializable + +

                + + Permalink + + +

                Binding with a raw value, not converted to any specific type (value from system properties, configuration, etc.).

                Binding with a raw value, not converted to any specific type (value from system properties, configuration, etc.).

                value

                value of the binding

                identifiers

                identifiers defining the binding

                +
              44. + + +

                + + + trait + + + RawInjector extends Injector + +

                + + Permalink + + +

                Abstract Injector implementation that may be extended by other injectors that get values from +specific source (command line, typesafe config, properties, etc.) +

                +
              45. + + +

                + + + case class + + + RequiredIdentifier(delegate: Identifier, isRequired: Boolean) extends Identifier with Product with Serializable + +

                + + Permalink + + + +
              46. + + +

                + + + trait + + + ShutdownHookLifecycleManager extends LifecycleManager + +

                + + Permalink + + + +
              47. + + +

                + + + case class + + + SimpleBinding[T](boundValue: Option[() ⇒ T], identifiers: List[Identifier] = Nil, condition: Option[() ⇒ Condition] = None, cacheable: Boolean = false, eager: Boolean = false) extends Binding with Product with Serializable + +

                + + Permalink + + +

                Binding that only contains a value.

                Binding that only contains a value. +As it is just a fixed value, no lyfecycle is needed

                T

                binding's type

                boundValue

                binding's value

                identifiers

                binding's identifiers (empty by default)

                condition

                binding's conditions (empty by default)

                cacheable

                if binding should be cacheable (false by default)

                eager

                if binding is eager (non lazy) (false by default)

                +
              48. + + +

                + + + class + + + SimpleContainerInjector extends MutableInjectorUser with InjectorWithLifecycle[SimpleContainerInjector] with ShutdownHookLifecycleManager + +

                + + Permalink + + +

                Container that transforms a list of bindings into a valid Injector

                +
              49. + + +

                + + + case class + + + StringIdentifier(str: String) extends Identifier with Product with Serializable + +

                + + Permalink + + + +
              50. + + +

                + + + case class + + + SysPropCondition(name: String, value: Option[String] = None) extends Condition with Product with Serializable + +

                + + Permalink + + + +
              51. + + +

                + + + case class + + + TypeTagIdentifier(tpe: scala.reflect.api.JavaUniverse.Type) extends Identifier with Product with Serializable + +

                + + Permalink + + + +
              52. + + +

                + + + class + + + TypesafeConfigInjector extends RawInjector + +

                + + Permalink + + +

                Injector with bindings found in supplied typesafe configuration

                +
              53. + + +

                + + + trait + + + Wire extends AnyRef + +

                + + Permalink + + + +
              54. + + +

                + + + class + + + WireBuilder extends AnyRef + +

                + + Permalink + + + +
              55. + + +

                + + + trait + + + WordBinder extends AnyRef + +

                + + Permalink + + + +
              56. + + +

                + + + case class + + + WordBindingProvider[T](bindingFn: (List[Identifier], Option[() ⇒ Condition], BindingLifecycle[Any]) ⇒ BindingWithLifecycle) extends Product with Serializable + +

                + + Permalink + + + +
              57. + + +

                + + + trait + + + BindingProvider extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5) BindingProvider is deprecated and will be removed soon. As an alternative you can use ImmutableWrapper injector to define an immutability boundary in composition or create your own injector that is marked as ImmutableInjector.

                +
              58. + + +

                + + + trait + + + ReflectionBinder extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5) ReflectionBinder is deprecated and will be removed soon. As an alternative you can use WordBinder or create your own injector that is marked as ImmutableInjector.

                +
              59. + + +

                + + + trait + + + StaticModule extends ReflectionBinder with ImmutableInjector with Injectable + +

                + + Permalink + + +
                Annotations
                + @deprecated + +
                Deprecated

                (Since version 0.5)

                +
              +
              + + + +
              +

              Value Members

              +
              1. + + +

                + + + object + + + Args + +

                + + Permalink + + +

                Factory for creating injector from command line arguments +

                +
              2. + + +

                + + + object + + + Binding + +

                + + Permalink + + + +
              3. + + +

                + + + object + + + BindingLifecycle extends Serializable + +

                + + Permalink + + + +
              4. + + +

                + + + object + + + BindingWithLifecycle + +

                + + Permalink + + + +
              5. + + +

                + + + object + + + CanBeIdentifier + +

                + + Permalink + + + +
              6. + + +

                + + + object + + + Condition + +

                + + Permalink + + + +
              7. + + +

                + + + object + + + DynamicModule + +

                + + Permalink + + + +
              8. + + +

                + + + object + + + Identifier + +

                + + Permalink + + + +
              9. + + +

                + + + object + + + ImmutableWrapper + +

                + + Permalink + + + +
              10. + + +

                + + + object + + + Injectable extends OpenInjectable + +

                + + Permalink + + +

                Companion object of Injectable which can be just imported in contrast +to Injectable trait which always need to be extended.

                Companion object of Injectable which can be just imported in contrast +to Injectable trait which always need to be extended. After importing +it, you can use an injection DSL without extending the trait.

                Example:

                import scaldi.Injectable._
                +
                +val database = inject [Database]
                +
              11. + + +

                + + + object + + + Injector extends LowPriorityImmutableInjectorComposition + +

                + + Permalink + + + +
              12. + + +

                + + + object + + + NilInjector extends ImmutableInjector + +

                + + Permalink + + +

                Empty injector, used for injector combination or as a filler where injector is required, +but there are no bindings.

                +
              13. + + +

                + + + object + + + PropertiesInjector + +

                + + Permalink + + +

                Factories to handle different type of properties' source.

                +
              14. + + +

                + + + object + + + SystemPropertiesInjector extends RawInjector + +

                + + Permalink + + +

                Used to look up for simple bindings in system properties.

                +
              15. + + +

                + + + object + + + TypeTagIdentifier extends Serializable + +

                + + Permalink + + + +
              16. + + +

                + + + object + + + TypesafeConfigInjector + +

                + + Permalink + + +

                Factories to handle different type of Typesafe config's source.

                +
              17. + + +

                + + + object + + + WireBuilder + +

                + + Permalink + + + +
              18. + + +

                + + + package + + + util + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/ReflectionHelper$.html b/latest/api/scaldi/util/ReflectionHelper$.html new file mode 100644 index 0000000..18c0222 --- /dev/null +++ b/latest/api/scaldi/util/ReflectionHelper$.html @@ -0,0 +1,656 @@ + + + + ReflectionHelper - scaldi.util.ReflectionHelper + + + + + + + + + + + + + + + +
              + Object +

              scaldi.util

              +

              ReflectionHelper

              Related Doc: + package util +

              + + Permalink + + +
              + +

              + + + object + + + ReflectionHelper + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. ReflectionHelper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + classToType(clazz: Class[_]): scala.reflect.api.JavaUniverse.Type + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + + def + + + constructorSymbol(c: Constructor[_]): scala.reflect.api.JavaUniverse.MethodSymbol + +

                + + Permalink + + +

                Dirty little trick to convert java constructor to scala constructor.

                Dirty little trick to convert java constructor to scala constructor. +(the reason for it is that scala reflection does not list private constructors) +

                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + fieldAnnotations(field: scala.reflect.api.JavaUniverse.TermSymbol): List[Annotation] + +

                + + Permalink + + + +
              11. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              12. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + + def + + + getDefaultValueOfParam[T, C](paramName: String)(implicit tt: scala.reflect.api.JavaUniverse.TypeTag[C]): T + +

                + + Permalink + + + +
              14. + + +

                + + + def + + + hasAnnotation[T <: Annotation](t: scala.reflect.api.JavaUniverse.Type)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): Boolean + +

                + + Permalink + + + +
              15. + + +

                + + + def + + + hasAnnotation[T <: Annotation](a: Annotation)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[T]): Boolean + +

                + + Permalink + + + +
              16. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + + def + + + isAssignableFrom(a: scala.reflect.api.JavaUniverse.Type, b: scala.reflect.api.JavaUniverse.Type): Boolean + +

                + + Permalink + + + +
              18. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              19. + + +

                + + + def + + + methodParamsAnnotations(method: scala.reflect.api.JavaUniverse.MethodSymbol): (List[Annotation], List[List[Annotation]]) + +

                + + Permalink + + +

                Dirty little trick to convert get method argument annotations.

                Dirty little trick to convert get method argument annotations. +(the reason for it is that scala reflection does not give this information) +

                +
              20. + + +

                + + + def + + + mirror: Mirror + +

                + + Permalink + + + +
              21. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              22. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              23. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              24. + + +

                + + + def + + + overrides(method: scala.reflect.api.JavaUniverse.Symbol): List[scala.reflect.api.JavaUniverse.Symbol] + +

                + + Permalink + + + +
              25. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              26. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              27. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              28. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              29. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/Util$$CacheUtils.html b/latest/api/scaldi/util/Util$$CacheUtils.html new file mode 100644 index 0000000..e3d9136 --- /dev/null +++ b/latest/api/scaldi/util/Util$$CacheUtils.html @@ -0,0 +1,519 @@ + + + + CacheUtils - scaldi.util.Util.CacheUtils + + + + + + + + + + + + + + + +
              + Class +

              scaldi.util.Util

              +

              CacheUtils

              Related Doc: + package Util +

              + + Permalink + + +
              + +

              + + + class + + + CacheUtils[K, V] extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. CacheUtils
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + CacheUtils(cache: Cache[K, V]) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + caching(key: K)(fn: ⇒ V): V + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/Util$$WorkflowHelper.html b/latest/api/scaldi/util/Util$$WorkflowHelper.html new file mode 100644 index 0000000..b7b505d --- /dev/null +++ b/latest/api/scaldi/util/Util$$WorkflowHelper.html @@ -0,0 +1,319 @@ + + + + WorkflowHelper - scaldi.util.Util.WorkflowHelper + + + + + + + + + + + + + + + +
              + Class +

              scaldi.util.Util

              +

              WorkflowHelper

              Related Doc: + package Util +

              + + Permalink + + +
              + +

              + + implicit final + class + + + WorkflowHelper[T] extends AnyVal + +

              + +
              + Linear Supertypes +
              AnyVal, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. WorkflowHelper
              2. AnyVal
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + +

                + + + new + + + WorkflowHelper(target: T) + +

                + + Permalink + + + +
              +
              + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              3. + + +

                + + + def + + + <|[R](fn: (T) ⇒ Unit): T + +

                + + Permalink + + + +
              4. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + + def + + + getClass(): Class[_ <: AnyVal] + +

                + + Permalink + + +
                Definition Classes
                AnyVal → Any
                +
              7. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              8. + + +

                + + + val + + + target: T + +

                + + Permalink + + + +
              9. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              10. + + +

                + + + def + + + |>[R](fn: (T) ⇒ R): R + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyVal

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/Util$.html b/latest/api/scaldi/util/Util$.html new file mode 100644 index 0000000..541b8f7 --- /dev/null +++ b/latest/api/scaldi/util/Util$.html @@ -0,0 +1,604 @@ + + + + Util - scaldi.util.Util + + + + + + + + + + + + + + + +
              + Object +

              scaldi.util

              +

              Util

              Related Doc: + package util +

              + + Permalink + + +
              + +

              + + + object + + + Util + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Util
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + +

                + + + type + + + Cache[K, V] = Map[K, V] + +

                + + Permalink + + + +
              2. + + +

                + + + class + + + CacheUtils[K, V] extends AnyRef + +

                + + Permalink + + + +
              3. + + +

                + + implicit final + class + + + WorkflowHelper[T] extends AnyVal + +

                + + Permalink + + + +
              +
              + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + + def + + + createCache[K, V]: Cache[K, V] + +

                + + Permalink + + + +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + ntimed[R](times: Int, metricsName: String)(fn: ⇒ R): R + +

                + + Permalink + + + +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + timed[R](metricsName: String)(fn: ⇒ R): R + +

                + + Permalink + + + +
              19. + + +

                + + implicit + def + + + toCacheUtils[K, V](cache: Cache[K, V]): CacheUtils[K, V] + +

                + + Permalink + + + +
              20. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              21. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/And$.html b/latest/api/scaldi/util/constraints/And$.html new file mode 100644 index 0000000..c942e26 --- /dev/null +++ b/latest/api/scaldi/util/constraints/And$.html @@ -0,0 +1,501 @@ + + + + And - scaldi.util.constraints.And + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi.util.constraints

              +

              And

              + Related Docs: + trait And + | package constraints +

              + + Permalink + + +
              + +

              + + + object + + + And + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. And
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + implicit + def + + + bothExistEv[A, B](implicit a: A, b: B): And[A, B] + +

                + + Permalink + + + +
              6. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              8. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/And.html b/latest/api/scaldi/util/constraints/And.html new file mode 100644 index 0000000..5d51206 --- /dev/null +++ b/latest/api/scaldi/util/constraints/And.html @@ -0,0 +1,490 @@ + + + + And - scaldi.util.constraints.And + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi.util.constraints

              +

              And

              + Related Docs: + object And + | package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + And[A, B] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. And
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Existence.html b/latest/api/scaldi/util/constraints/Existence.html new file mode 100644 index 0000000..3ec4f7c --- /dev/null +++ b/latest/api/scaldi/util/constraints/Existence.html @@ -0,0 +1,485 @@ + + + + Existence - scaldi.util.constraints.Existence + + + + + + + + + + + + + + + +
              + Trait +

              scaldi.util.constraints

              +

              Existence

              Related Doc: + package constraints +

              + + Permalink + + +
              + +

              + + sealed + trait + + + Existence extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Existence
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Exists.html b/latest/api/scaldi/util/constraints/Exists.html new file mode 100644 index 0000000..5a96c59 --- /dev/null +++ b/latest/api/scaldi/util/constraints/Exists.html @@ -0,0 +1,484 @@ + + + + Exists - scaldi.util.constraints.Exists + + + + + + + + + + + + + + + +
              + Trait +

              scaldi.util.constraints

              +

              Exists

              Related Doc: + package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + Exists extends Existence + +

              + +
              + Linear Supertypes +
              Existence, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Exists
              2. Existence
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Existence

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/IsTypeClassExists$.html b/latest/api/scaldi/util/constraints/IsTypeClassExists$.html new file mode 100644 index 0000000..ed72ae1 --- /dev/null +++ b/latest/api/scaldi/util/constraints/IsTypeClassExists$.html @@ -0,0 +1,537 @@ + + + + IsTypeClassExists - scaldi.util.constraints.IsTypeClassExists + + + + + + + + + + + + + + + + + +

              + + + object + + + IsTypeClassExists extends LowPriorityIsTypeClassExists + +

              + +
              + Linear Supertypes + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. IsTypeClassExists
              2. LowPriorityIsTypeClassExists
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + val + + + evidence: IsTypeClassExists[Any, Any] + +

                + + Permalink + + +
                Attributes
                protected
                Definition Classes
                LowPriorityIsTypeClassExists
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + implicit + def + + + typeClassExistsEv[TypeClass, Answer](implicit a: TypeClass): IsTypeClassExists[TypeClass, Exists] + +

                + + Permalink + + + +
              19. + + +

                + + implicit + def + + + typeClassNotExistsEv[TypeClass, Answer]: IsTypeClassExists[TypeClass, NotExists] + +

                + + Permalink + + +
                Definition Classes
                LowPriorityIsTypeClassExists
                +
              20. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from LowPriorityIsTypeClassExists

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/IsTypeClassExists.html b/latest/api/scaldi/util/constraints/IsTypeClassExists.html new file mode 100644 index 0000000..db07c97 --- /dev/null +++ b/latest/api/scaldi/util/constraints/IsTypeClassExists.html @@ -0,0 +1,484 @@ + + + + IsTypeClassExists - scaldi.util.constraints.IsTypeClassExists + + + + + + + + + + + + + + + + + +

              + + + trait + + + IsTypeClassExists[TypeClass, Answer] extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. IsTypeClassExists
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/LowPriorityIsTypeClassExists.html b/latest/api/scaldi/util/constraints/LowPriorityIsTypeClassExists.html new file mode 100644 index 0000000..07de958 --- /dev/null +++ b/latest/api/scaldi/util/constraints/LowPriorityIsTypeClassExists.html @@ -0,0 +1,519 @@ + + + + LowPriorityIsTypeClassExists - scaldi.util.constraints.LowPriorityIsTypeClassExists + + + + + + + + + + + + + + + +
              + Trait +

              scaldi.util.constraints

              +

              LowPriorityIsTypeClassExists

              Related Doc: + package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + LowPriorityIsTypeClassExists extends AnyRef + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + Known Subclasses + +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. LowPriorityIsTypeClassExists
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + val + + + evidence: IsTypeClassExists[Any, Any] + +

                + + Permalink + + +
                Attributes
                protected
                +
              9. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              13. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + implicit + def + + + typeClassNotExistsEv[TypeClass, Answer]: IsTypeClassExists[TypeClass, NotExists] + +

                + + Permalink + + + +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Not$.html b/latest/api/scaldi/util/constraints/Not$.html new file mode 100644 index 0000000..8fe07ff --- /dev/null +++ b/latest/api/scaldi/util/constraints/Not$.html @@ -0,0 +1,501 @@ + + + + Not - scaldi.util.constraints.Not + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi.util.constraints

              +

              Not

              + Related Docs: + trait Not + | package constraints +

              + + Permalink + + +
              + +

              + + + object + + + Not + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Not
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + implicit + def + + + notEv[T, Answer](implicit a: IsTypeClassExists[T, Answer], ne: =:=[Answer, NotExists]): Not[T] + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Not.html b/latest/api/scaldi/util/constraints/Not.html new file mode 100644 index 0000000..830c29e --- /dev/null +++ b/latest/api/scaldi/util/constraints/Not.html @@ -0,0 +1,490 @@ + + + + Not - scaldi.util.constraints.Not + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi.util.constraints

              +

              Not

              + Related Docs: + object Not + | package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + Not[T] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Not
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/NotExists.html b/latest/api/scaldi/util/constraints/NotExists.html new file mode 100644 index 0000000..7e640b3 --- /dev/null +++ b/latest/api/scaldi/util/constraints/NotExists.html @@ -0,0 +1,484 @@ + + + + NotExists - scaldi.util.constraints.NotExists + + + + + + + + + + + + + + + +
              + Trait +

              scaldi.util.constraints

              +

              NotExists

              Related Doc: + package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + NotExists extends Existence + +

              + +
              + Linear Supertypes +
              Existence, AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NotExists
              2. Existence
              3. AnyRef
              4. Any
              5. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from Existence

              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/NotNothing$.html b/latest/api/scaldi/util/constraints/NotNothing$.html new file mode 100644 index 0000000..feabd02 --- /dev/null +++ b/latest/api/scaldi/util/constraints/NotNothing$.html @@ -0,0 +1,501 @@ + + + + NotNothing - scaldi.util.constraints.NotNothing + + + + + + + + + + + + + + + + + +

              + + + object + + + NotNothing + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NotNothing
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + implicit + def + + + notNothingEvidence[T](implicit n: =:=[T, T]): NotNothing[T] + +

                + + Permalink + + + +
              14. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/NotNothing.html b/latest/api/scaldi/util/constraints/NotNothing.html new file mode 100644 index 0000000..a909c4f --- /dev/null +++ b/latest/api/scaldi/util/constraints/NotNothing.html @@ -0,0 +1,490 @@ + + + + NotNothing - scaldi.util.constraints.NotNothing + + + + + + + + + + + + + + + + + +

              + + + trait + + + NotNothing[T] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. NotNothing
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Or$.html b/latest/api/scaldi/util/constraints/Or$.html new file mode 100644 index 0000000..86fa71f --- /dev/null +++ b/latest/api/scaldi/util/constraints/Or$.html @@ -0,0 +1,518 @@ + + + + Or - scaldi.util.constraints.Or + + + + + + + + + + + + + + + +
              + Object/Trait +

              scaldi.util.constraints

              +

              Or

              + Related Docs: + trait Or + | package constraints +

              + + Permalink + + +
              + +

              + + + object + + + Or + +

              + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Or
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + implicit + def + + + aExistsEv[A, B](implicit a: A): Or[A, B] { def get: scala.util.Left[A,Nothing] } + +

                + + Permalink + + + +
              5. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              6. + + +

                + + implicit + def + + + bExistsEv[A, B](implicit b: B): Or[A, B] { def get: scala.util.Right[Nothing,B] } + +

                + + Permalink + + + +
              7. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              8. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              9. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              14. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              17. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              18. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              19. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/Or.html b/latest/api/scaldi/util/constraints/Or.html new file mode 100644 index 0000000..32623ca --- /dev/null +++ b/latest/api/scaldi/util/constraints/Or.html @@ -0,0 +1,510 @@ + + + + Or - scaldi.util.constraints.Or + + + + + + + + + + + + + + + +
              + Trait/Object +

              scaldi.util.constraints

              +

              Or

              + Related Docs: + object Or + | package constraints +

              + + Permalink + + +
              + +

              + + + trait + + + Or[A, B] extends AnyRef + +

              + +
              Annotations
              + @implicitNotFound( + + ... + ) + +
              + Linear Supertypes +
              AnyRef, Any
              +
              + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. Or
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show all
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + +
              +

              Abstract Value Members

              +
              1. + + +

                + + abstract + def + + + get: Either[A, B] + +

                + + Permalink + + + +
              +
              + +
              +

              Concrete Value Members

              +
              1. + + +

                + + final + def + + + !=(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + +

                + + final + def + + + ##(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + +

                + + final + def + + + ==(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + +

                + + final + def + + + asInstanceOf[T0]: T0 + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              5. + + +

                + + + def + + + clone(): AnyRef + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + +

                + + final + def + + + eq(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              7. + + +

                + + + def + + + equals(arg0: Any): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + +

                + + + def + + + finalize(): Unit + +

                + + Permalink + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + +

                + + final + def + + + getClass(): Class[_] + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + +

                + + + def + + + hashCode(): Int + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + +

                + + final + def + + + isInstanceOf[T0]: Boolean + +

                + + Permalink + + +
                Definition Classes
                Any
                +
              12. + + +

                + + final + def + + + ne(arg0: AnyRef): Boolean + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              13. + + +

                + + final + def + + + notify(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              14. + + +

                + + final + def + + + notifyAll(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              15. + + +

                + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                +
              16. + + +

                + + + def + + + toString(): String + +

                + + Permalink + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + +

                + + final + def + + + wait(): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + +

                + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + +

                + + final + def + + + wait(arg0: Long): Unit + +

                + + Permalink + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/constraints/package.html b/latest/api/scaldi/util/constraints/package.html new file mode 100644 index 0000000..e2830c1 --- /dev/null +++ b/latest/api/scaldi/util/constraints/package.html @@ -0,0 +1,366 @@ + + + + constraints - scaldi.util.constraints + + + + + + + + + + + + + + + +
              + Package +

              scaldi.util

              +

              constraints

              + + Permalink + + +
              + +

              + + + package + + + constraints + +

              + +
              + + +
              +
              + + +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + +

                + + + trait + + + And[A, B] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              2. + + +

                + + sealed + trait + + + Existence extends AnyRef + +

                + + Permalink + + + +
              3. + + +

                + + + trait + + + Exists extends Existence + +

                + + Permalink + + + +
              4. + + +

                + + + trait + + + IsTypeClassExists[TypeClass, Answer] extends AnyRef + +

                + + Permalink + + + +
              5. + + +

                + + + trait + + + LowPriorityIsTypeClassExists extends AnyRef + +

                + + Permalink + + + +
              6. + + +

                + + + trait + + + Not[T] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              7. + + +

                + + + trait + + + NotExists extends Existence + +

                + + Permalink + + + +
              8. + + +

                + + + trait + + + NotNothing[T] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              9. + + +

                + + + trait + + + Or[A, B] extends AnyRef + +

                + + Permalink + + +
                Annotations
                + @implicitNotFound( + + ... + ) + +
                +
              +
              + + + +
              +

              Value Members

              +
              1. + + +

                + + + object + + + And + +

                + + Permalink + + + +
              2. + + +

                + + + object + + + IsTypeClassExists extends LowPriorityIsTypeClassExists + +

                + + Permalink + + + +
              3. + + +

                + + + object + + + Not + +

                + + Permalink + + + +
              4. + + +

                + + + object + + + NotNothing + +

                + + Permalink + + + +
              5. + + +

                + + + object + + + Or + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/latest/api/scaldi/util/package.html b/latest/api/scaldi/util/package.html new file mode 100644 index 0000000..7ca1755 --- /dev/null +++ b/latest/api/scaldi/util/package.html @@ -0,0 +1,152 @@ + + + + util - scaldi.util + + + + + + + + + + + + + + + +
              + Package +

              scaldi

              +

              util

              + + Permalink + + +
              + +

              + + + package + + + util + +

              + +
              + + +
              +
              + + +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + + object + + + ReflectionHelper + +

                + + Permalink + + + +
              2. + + +

                + + + object + + + Util + +

                + + Permalink + + + +
              3. + + +

                + + + package + + + constraints + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/project/build.properties b/project/build.properties deleted file mode 100644 index c8fcab5..0000000 --- a/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.6.2 diff --git a/project/plugins.sbt b/project/plugins.sbt deleted file mode 100644 index f1ed972..0000000 --- a/project/plugins.sbt +++ /dev/null @@ -1,9 +0,0 @@ -addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2") -addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.10") -addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.0") - -addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.2") -addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.4.1") -addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.3") - -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") diff --git a/src/main/scala-2.11/scaldi/internal/WireCrossHelper.scala b/src/main/scala-2.11/scaldi/internal/WireCrossHelper.scala deleted file mode 100644 index 94e694f..0000000 --- a/src/main/scala-2.11/scaldi/internal/WireCrossHelper.scala +++ /dev/null @@ -1,10 +0,0 @@ -package scaldi.internal - -import scala.reflect.macros.blackbox - -private[scaldi] object WireCrossHelper { - - /** Helper for creating a named arg tree when cross building. */ - def CrossNamedArg(c: blackbox.Context)(lhs: c.universe.Tree, rhs: c.universe.Tree): c.universe.TermTree = - c.universe.AssignOrNamedArg(lhs, rhs) -} diff --git a/src/main/scala-2.12/scaldi/internal/WireCrossHelper.scala b/src/main/scala-2.12/scaldi/internal/WireCrossHelper.scala deleted file mode 100644 index 94e694f..0000000 --- a/src/main/scala-2.12/scaldi/internal/WireCrossHelper.scala +++ /dev/null @@ -1,10 +0,0 @@ -package scaldi.internal - -import scala.reflect.macros.blackbox - -private[scaldi] object WireCrossHelper { - - /** Helper for creating a named arg tree when cross building. */ - def CrossNamedArg(c: blackbox.Context)(lhs: c.universe.Tree, rhs: c.universe.Tree): c.universe.TermTree = - c.universe.AssignOrNamedArg(lhs, rhs) -} diff --git a/src/main/scala-2.13/scaldi/internal/WireCrossHelper.scala b/src/main/scala-2.13/scaldi/internal/WireCrossHelper.scala deleted file mode 100644 index 6609973..0000000 --- a/src/main/scala-2.13/scaldi/internal/WireCrossHelper.scala +++ /dev/null @@ -1,10 +0,0 @@ -package scaldi.internal - -import scala.reflect.macros.blackbox - -private[scaldi] object WireCrossHelper { - - /** Helper for creating a named arg tree when cross building. */ - def CrossNamedArg(c: blackbox.Context)(lhs: c.universe.Tree, rhs: c.universe.Tree): c.universe.TermTree = - c.universe.NamedArg(lhs, rhs) -} diff --git a/src/main/scala/scaldi/Binder.scala b/src/main/scala/scaldi/Binder.scala deleted file mode 100644 index 914f142..0000000 --- a/src/main/scala/scaldi/Binder.scala +++ /dev/null @@ -1,215 +0,0 @@ -package scaldi - -import language.postfixOps - -import scaldi.util.Util._ -import scala.reflect.runtime.universe.{typeTag, Type, TypeTag} -import scaldi.util.ReflectionHelper - -trait WordBinder { - private var bindingsInProgress: List[BindHelper[_]] = Nil - private var bindings: List[BoundHelper[_]] = Nil - private var contextCondition: Option[() => Condition] = None - - protected def injector: Injector - - lazy val wordBindings: List[BindingWithLifecycle] = { - if (bindingsInProgress nonEmpty) { - throw new BindingException( - bindingsInProgress - .map(b => "\tBinding with identifiers: " + (b.identifiers mkString ", ")) - .mkString( - "Following bindings are not bound to anything (please use 'to', 'toProvider' or 'toNonLazy']):\n", - "\n", - "" - ) - ) - } - - val injectorBinding = ProviderBinding(() => injector, List(TypeTagIdentifier.typeId[Injector])) - - injectorBinding :: bindings.map(_ getBinding).reverse - } - - def binding: BindHelper[Any] = createBinding[Any](None, contextCondition) - def bind[T: TypeTag]: BindHelper[T] = createBinding[T](Some(typeTag[T]), contextCondition) - - def when(condition: => Condition)(fn: => Unit): Unit = { - val orig = contextCondition - contextCondition = orig map (c => () => condition and c()) orElse Some(() => condition) - fn - contextCondition = orig - } - - def required(identifier: Identifier): Identifier = RequiredIdentifier(identifier, isRequired = true) - def notRequired(identifier: Identifier): Identifier = RequiredIdentifier(identifier, isRequired = false) - - private def createBinding[T](mainType: Option[TypeTag[_]], condition: Option[() => Condition]) = { - val helper = new BindHelper[T]({ (bind, bound) => - bindingsInProgress = bindingsInProgress filterNot (bind ==) - bindings = bindings :+ bound - }) - - bindingsInProgress = bindingsInProgress :+ helper - - mainType foreach (helper identifiedBy _) - condition foreach (c => helper when c()) - - helper - } - - protected def initEagerWordBindings(lifecycleManager: LifecycleManager): () => Unit = - wordBindings |> (b => () => b.filter(_.isEager).foreach(_ init lifecycleManager)) -} - -trait CanBeIdentified[R] { this: R => - var identifiers: List[Identifier] = Nil - - def identifiedBy(ids: Identifier*): R = { - identifiers = identifiers ++ ids - this - } - - def as(ids: Identifier*): R = identifiedBy(ids: _*) - - def and(ids: Identifier*): R = identifiedBy(ids: _*) -} - -trait CanBeConditional[R] { this: R => - var condition: Option[() => Condition] = None - - def when(cond: => Condition): this.type = { - condition = condition map (c => () => cond and c()) orElse Some(() => cond) - this - } -} - -trait CanHaveLifecycle[H, D] { this: H => - var lifecycle: BindingLifecycle[D] = BindingLifecycle.empty[D] - - def initWith(initFn: (D) => Unit): this.type = { - lifecycle = lifecycle.copy(initialize = Some(initFn)) - this - } - - def destroyWith(destroyFn: (D) => Unit): this.type = { - lifecycle = lifecycle.copy(destroy = Some(destroyFn)) - this - } -} - -case class WordBindingProvider[T]( - bindingFn: (List[Identifier], Option[() => Condition], BindingLifecycle[Any]) => BindingWithLifecycle -) - -class BindHelper[R](onBound: (BindHelper[R], BoundHelper[_]) => Unit) - extends CanBeIdentified[BindHelper[R]] - with CanBeConditional[BindHelper[R]] { - var createFn: Option[Option[() => Any]] = None - - def to(none: None.type): BoundHelper[R] = bindNone[R](LazyBinding(None, _, _, _)) - def to[T <: R: TypeTag](provider: WordBindingProvider[T]): BoundHelper[T] = bind(provider.bindingFn) - def to[T <: R: TypeTag](fn: => T): BoundHelper[T] = bind(LazyBinding(Some(() => fn), _, _, _)) - @deprecated("`in` variant is deprecated in favor of `to` syntax", "0.5") - def in[T <: R: TypeTag](fn: => T): BoundHelper[T] = to(fn) - - def toNonLazy[T <: R: TypeTag](fn: => T): BoundHelper[T] = bind(NonLazyBinding(Some(() => fn), _, _, _)) - @deprecated("`in` variant is deprecated in favor of `to` syntax", "0.5") - def inNonLazy[T <: R: TypeTag](fn: => T): BoundHelper[T] = toNonLazy(fn) - - def toProvider[T <: R: TypeTag](fn: => T): BoundHelper[T] = bind(ProviderBinding(() => fn, _, _, _)) - @deprecated("`in` variant is deprecated in favor of `to` syntax", "0.5") - def inProvider[T <: R: TypeTag](fn: => T): BoundHelper[T] = toProvider(fn) - - private def bind[T: TypeTag]( - bindingFn: (List[Identifier], Option[() => Condition], BindingLifecycle[Any]) => BindingWithLifecycle - ): BoundHelper[T] = { - val bound = new BoundHelper[T](bindingFn, identifiers, condition, Some(typeTag[T].tpe)) - onBound(this, bound) - bound - } - - private def bindNone[D]( - bindingFn: (List[Identifier], Option[() => Condition], BindingLifecycle[Any]) => BindingWithLifecycle - ): BoundHelper[D] = { - val bound = new BoundHelper[D](bindingFn, identifiers, condition, None) - onBound(this, bound) - bound - } -} - -class BoundHelper[D]( - bindingFn: (List[Identifier], Option[() => Condition], BindingLifecycle[Any]) => BindingWithLifecycle, - initialIdentifiers: List[Identifier], - initialCondition: Option[() => Condition], - bindingType: Option[Type] -) extends CanBeIdentified[BoundHelper[D]] - with CanBeConditional[BoundHelper[D]] - with CanHaveLifecycle[BoundHelper[D], D] { - def getBinding: BindingWithLifecycle = bindingFn( - (initialIdentifiers ++ identifiers, bindingType) match { - case (ids, _) if ids.exists(_.isInstanceOf[TypeTagIdentifier]) => ids - case (ids, Some(t)) => ids :+ TypeTagIdentifier(t) - case (ids, None) => ids - }, - condition orElse initialCondition, - lifecycle.asInstanceOf[BindingLifecycle[Any]] - ) -} - -@deprecated( - "ReflectionBinder is deprecated and will be removed soon. As an alternative you can use `WordBinder` or create your own injector that is marked as `ImmutableInjector`.", - "0.5" -) -trait ReflectionBinder { - lazy val reflectiveBindings: List[Binding] = { - import scala.reflect.runtime.universe._ - import ReflectionHelper._ - - val mirror = ReflectionHelper.mirror - val reflection = mirror reflect this - - // TODO: filter even more - all library, Scala and JDK methods should be somehow filtered! - mirror - .classSymbol(this.getClass) - .toType - .members - .filter(_.isPublic) - .filter(_.isMethod) - .filterNot(_.isMacro) - .filterNot(_.isConstructor) - .map(_.asMethod) - .filterNot(_.returnType =:= typeOf[Nothing]) - .map { m => - if (m.returnType safe_<:< typeOf[BindingProvider]) - reflection - .reflectMethod(m) - .apply() - .asInstanceOf[BindingProvider] - .getBinding(m.name.decodedName.toString, m.returnType) - else - ReflectiveBinding( - () => Some(reflection.reflectMethod(m).apply()), - List(m.returnType, m.name.decodedName.toString) - ) - } - .toList - } - - case class ReflectiveBinding(fn: () => Option[Any], identifiers: List[Identifier]) extends Binding { - val condition: Option[() => Condition] = None - override def get: Option[Any] = fn() - } -} - -@deprecated( - "BindingProvider is deprecated and will be removed soon. As an alternative you can use `ImmutableWrapper` injector to define an immutability boundary in composition or create your own injector that is marked as `ImmutableInjector`.", - "0.5" -) -trait BindingProvider { - def getBinding(name: String, tpe: Type): Binding -} - -class BindingException(message: String, cause: Throwable) extends RuntimeException(message, cause) { - def this(message: String) = this(message, null) -} diff --git a/src/main/scala/scaldi/Binding.scala b/src/main/scala/scaldi/Binding.scala deleted file mode 100644 index 4fec424..0000000 --- a/src/main/scala/scaldi/Binding.scala +++ /dev/null @@ -1,248 +0,0 @@ -package scaldi - -import scaldi.util.Util._ - -/** Entities that extend `Identifiable` can be identified using Scaldi identifiers. They can also contain conditions. */ -trait Identifiable { - def identifiers: List[Identifier] - - /** Stores condition for binding. Used for conditional binding - * @return - * `Option` with function returning condition - */ - def condition: Option[() => Condition] - - protected lazy val resolvedCondition: Option[Condition] = condition map (fn => fn()) - - def isDefinedFor(desiredIdentifiers: List[Identifier]): Boolean = - Identifier.sameAs(identifiers, desiredIdentifiers) && - resolvedCondition.fold(true)(_ satisfies desiredIdentifiers) - - /** Defines if binding is lazy or not `false` by default - * - * @return - * `true` if not lazy, `false` otherwise - */ - def isEager: Boolean = false - - /** Specifies if binding is cacheable False by default - * @return - * `Boolean` true if binding is cacheable, false otherwise - */ - def isCacheable: Boolean = false -} - -/** Binding is defined in a `Module` as Type -> instance relationship (sometimes with additional identifiers). I can be - * injected in classes where implicit `Injector` is available. Binding can be defined (containing a value) or - * undefined. - */ -trait Binding extends Identifiable { - - /** Retrieves stored binding's value, used during binding lookup during injection. If equals to `None`, binding is - * considered undefined - * @return - * `Option` with binding's value (or `None` if the binding is undefined) - */ - def get: Option[Any] -} - -object Binding { - - /** Standard factory method for binding that from `LifecycleManager` and `BindingWithLifecycle` creates new `Binding` - * - * @param lifecycleManager - * `LifecycleManager` that will handle initialization / destruction events for binding - * @param binding - * `BindingWithLifecycle` actual binding - * @return - * a new binding (without lifecycle) which delegates all method calls to the provided `binding` - */ - def apply(lifecycleManager: LifecycleManager, binding: BindingWithLifecycle): Binding = new Binding { - def get: Option[Any] = binding get lifecycleManager - def condition: Option[() => Condition] = binding.condition - def identifiers: List[Identifier] = binding.identifiers - override def isEager: Boolean = binding.isEager - override def isCacheable: Boolean = binding.isCacheable - } -} - -/** Bindings with lifecycle may have initialization and destruction handlers */ -trait BindingWithLifecycle extends Identifiable { - - /** Bindings with lifecycle should have `BindingLifecycle` attached to them - * @return - * `BindingLifecycle` current binding's lifecycle - */ - def lifecycle: BindingLifecycle[Any] - - /** Retrieves stored binding's value, used during binding lookup during injection. If equals to `None`, binding is - * considered undefined - * - * @param lifecycleManager - * `LifecycleManager` that will handle the destruction of the binding at the end of the lifecycle - * @return - * `Option` with binding's value (or `None` if the binding is undefined) - */ - def get(lifecycleManager: LifecycleManager): Option[Any] - - def init(lifecycleManager: LifecycleManager): Unit = - resolvedCondition match { - case None => - get(lifecycleManager) - case Some(c) if c.dynamic || c.satisfies(Nil) => - get(lifecycleManager) - case _ => - // do nothing because eager binding should not be initialized - } -} - -object BindingWithLifecycle { - def apply(binding: Binding): BindingWithLifecycle = new BindingWithLifecycle { - val lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty - def condition: Option[() => Condition] = binding.condition - def identifiers: List[Identifier] = binding.identifiers - def get(lifecycleManager: LifecycleManager): Option[Any] = binding.get - override def isEager: Boolean = binding.isEager - override def isCacheable: Boolean = binding.isCacheable - } -} - -/** Binding that is initialized at the Injector initialization phase (normally during an application startup) and never - * changes afterwards. - * - * @param createFn - * function that creates and returns value that will be associated with binding - * @param identifiers - * binding's identifiers (empty by default) - * @param condition - * binding's conditions (empty by default) - * @param lifecycle - * binding's lifecycle (empty by default) - */ -case class NonLazyBinding( - private val createFn: Option[() => Any], - identifiers: List[Identifier] = Nil, - condition: Option[() => Condition] = None, - lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty -) extends BindingWithLifecycle { - lazy val target: Option[Any] = createFn map (fn => fn() <| lifecycle.initializeObject) - var destroyableAdded = false - - /** @inheritdoc */ - override def get(lifecycleManager: LifecycleManager): Option[Any] = { - for { - d <- lifecycle.destroy - t <- target - if !destroyableAdded - } { - lifecycleManager addDestroyable (() => d(t)) - destroyableAdded = true - } - - target - } - - /** @inheritdoc */ - override def isEager: Boolean = true - - /** @inheritdoc */ - override def isCacheable: Boolean = true -} - -/** Binding that is initialized on on first use and never changes afterwards. - * - * @param createFn - * function that creates and returns value that will be associated with binding - * @param identifiers - * binding's identifiers (empty by default) - * @param condition - * binding's conditions (empty by default) - * @param lifecycle - * binding's lifecycle (empty by default) - */ -case class LazyBinding( - private val createFn: Option[() => Any], - identifiers: List[Identifier] = Nil, - condition: Option[() => Condition] = None, - lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty -) extends BindingWithLifecycle { - lazy val target: Option[Any] = createFn map (fn => fn() <| lifecycle.initializeObject) - var destroyableAdded = false - - /** @inheritdoc */ - override def get(lifecycleManager: LifecycleManager): Option[Any] = { - for { - d <- lifecycle.destroy - t <- target - if !destroyableAdded - } { - lifecycleManager addDestroyable (() => d(t)) - destroyableAdded = true - } - - target - } - - /** @inheritdoc */ - override def isCacheable: Boolean = true -} - -/** Binding that is initialized on every injection with createFn function. - * - * @param createFn - * function that creates and returns value that will be associated with binding - * @param identifiers - * binding's identifiers (empty by default) - * @param condition - * binding's conditions (empty by default) - * @param lifecycle - * binding's lifecycle (empty by default) - */ -case class ProviderBinding( - private val createFn: () => Any, - identifiers: List[Identifier] = Nil, - condition: Option[() => Condition] = None, - lifecycle: BindingLifecycle[Any] = BindingLifecycle.empty -) extends BindingWithLifecycle { - def target: Any = createFn() <| lifecycle.initializeObject - - /** @inheritdoc */ - override def get(lifecycleManager: LifecycleManager): Option[Any] = { - val value = target - lifecycle.destroy foreach (d => lifecycleManager addDestroyable (() => d(value))) - Some(value) - } -} - -/** Binding that only contains a value. As it is just a fixed value, no lifecycle is needed - * - * @param boundValue - * binding's value - * @param identifiers - * binding's identifiers (empty by default) - * @param condition - * binding's conditions (empty by default) - * @param cacheable - * if binding should be cacheable (false by default) - * @param eager - * if binding is eager (non lazy) (false by default) - * @tparam T - * binding's type - */ -case class SimpleBinding[T]( - boundValue: Option[() => T], - identifiers: List[Identifier] = Nil, - condition: Option[() => Condition] = None, - cacheable: Boolean = false, - eager: Boolean = false -) extends Binding { - - /** @inheritdoc */ - lazy val get: Option[Any] = boundValue map (fn => fn()) - - /** @inheritdoc */ - override def isCacheable: Boolean = cacheable && condition.isEmpty - - /** @inheritdoc */ - override def isEager: Boolean = eager -} diff --git a/src/main/scala/scaldi/Condition.scala b/src/main/scala/scaldi/Condition.scala deleted file mode 100644 index d1fdfc1..0000000 --- a/src/main/scala/scaldi/Condition.scala +++ /dev/null @@ -1,76 +0,0 @@ -package scaldi - -trait Condition { - def satisfies(identifiers: List[Identifier]): Boolean - - def unary_! : Condition = NotCondition(this) - def and(otherCond: Condition): Condition = AndCondition(List(this, otherCond)) - def or(otherCond: Condition): Condition = OrCondition(List(this, otherCond)) - - /** Defines whether this condition can change while `Injector` is still alive. - * - * This will influence how non-lazy bindings are initialized. Non-dynamic conditions would be checked during the - * initialization phase of an `Injector` (with empty list of identifiers) and if condition returns `false`, then - * non-lazy binding would not be initialized. - */ - def dynamic: Boolean = true -} - -object Condition { - def apply(fn: => Boolean): Condition = new Condition { - def satisfies(identifiers: List[Identifier]): Boolean = fn - } - - def apply(fn: => Boolean, dynamic: Boolean): Condition = { - val dyn = dynamic - - new Condition { - def satisfies(identifiers: List[Identifier]): Boolean = fn - override val dynamic: Boolean = dyn - } - } - - def apply(fn: (List[Identifier]) => Boolean): Condition = new Condition { - def satisfies(identifiers: List[Identifier]): Boolean = fn(identifiers) - } - - def apply(fn: (List[Identifier]) => Boolean, dynamic: Boolean): Condition = { - val dyn = dynamic - - new Condition { - def satisfies(identifiers: List[Identifier]): Boolean = fn(identifiers) - override val dynamic: Boolean = dyn - } - } -} - -case class OrCondition(conditions: List[Condition]) extends Condition { - def satisfies(identifiers: List[Identifier]): Boolean = - conditions exists (_ satisfies identifiers) - - override val dynamic: Boolean = conditions.exists(_.dynamic) -} - -case class AndCondition(conditions: List[Condition]) extends Condition { - def satisfies(identifiers: List[Identifier]): Boolean = - conditions forall (_ satisfies identifiers) - - override val dynamic: Boolean = conditions.exists(_.dynamic) -} - -case class NotCondition(condition: Condition) extends Condition { - def satisfies(identifiers: List[Identifier]): Boolean = - !(condition satisfies identifiers) - - override val dynamic: Boolean = condition.dynamic -} - -case class SysPropCondition(name: String, value: Option[String] = None, override val dynamic: Boolean = false) - extends Condition { - def satisfies(identifiers: List[Identifier]): Boolean = - (value, System.getProperty(name)) match { - case (Some(v), r) if v == r => true - case (None, r) if r != null => true - case _ => false - } -} diff --git a/src/main/scala/scaldi/Identifier.scala b/src/main/scala/scaldi/Identifier.scala deleted file mode 100644 index cea8253..0000000 --- a/src/main/scala/scaldi/Identifier.scala +++ /dev/null @@ -1,173 +0,0 @@ -package scaldi - -import scaldi.util.ReflectionHelper - -import scala.annotation.implicitNotFound -import scala.language.{existentials, implicitConversions} -import scala.reflect.runtime.universe.{Type, TypeTag} - -/** Used to identify a binding. If you have two bindings of the same type (like `String` bindings), the identifiers may - * be used to identify and to inject the right one - */ -trait Identifier { - - /** Determines if one `Identifier` is equal to another `Identifier` - * @param other - * other `Identifier` - * @return - * true if both identifiers are the same, false otherwise - */ - def sameAs(other: Identifier): Boolean - - /** `Identifier` may be marked as required, in which case the identifier must be used in order to get the binding - * @return - * true if `Identifier` is required, false otherwise - */ - def required: Boolean = false -} - -object Identifier { - - /** Implicitly transforms a type that can be `Identifier` to an identifier - * @param target - * value to be transformed to `Identifier` - * @tparam T - * class that can be transformed to an `Identifier` - * @return - * resulting `Identifier` - */ - implicit def toIdentifier[T: CanBeIdentifier](target: T): Identifier = - implicitly[CanBeIdentifier[T]].toIdentifier(target) - - /** Compares two lists of identifiers, true if actual lists at least contains all the identifiers in the desired list. - * Also checks if all the required identifiers in the actual list are matched in the desired list - * @param actual - * list of actual identifiers to compare - * @param desired - * list of desired identifiers to compare - * @return - * true if actual list contains at least all the identifiers in the desired list and the required actual - * identifiers are in desired list, false otherwise - */ - def sameAs(actual: List[Identifier], desired: List[Identifier]): Boolean = { - val matching = desired.map(d => actual filter (_ sameAs d)) - - !matching.contains(Nil) && { - val flatMatching = matching.flatten - - actual.filter(_.required).forall(a => flatMatching exists a.sameAs) - } - } -} - -/** Implementation to implicitly transform `T` class to an `Identifier` - * @tparam T - * type that should be transformed to an Identifier - */ -@implicitNotFound(msg = "${T} can't be treated as Identifier. Please consider defining CanBeIdentifier for it.") -trait CanBeIdentifier[T] { - def toIdentifier(target: T): Identifier -} - -object CanBeIdentifier { - - /** Implementation to implicitly transform `String` into an `Identifier`. Has priority over other type class - * implementations - */ - implicit object StringCanBeIdentifier extends CanBeIdentifier[String] { - def toIdentifier(str: String): Identifier = StringIdentifier(str) - } - - /** Implementation to implicitly transform `Symbol` into an `Identifier` */ - implicit object SymbolCanBeIdentifier extends CanBeIdentifier[Symbol] { - def toIdentifier(sym: Symbol): Identifier = StringIdentifier(sym.name) - } - - /** Implementation to implicitly transform a Class into an `Identifier` */ - implicit def ClassCanBeIdentifier[T: TypeTag]: CanBeIdentifier[Class[T]] = new CanBeIdentifier[Class[T]] { - def toIdentifier(c: Class[T]): TypeTagIdentifier = TypeTagIdentifier.typeId[T] - } - - /** Implementation to implicitly transform a Type Parameter into an `Identifier` */ - implicit def TypeTagCanBeIdentifier[T: TypeTag]: CanBeIdentifier[TypeTag[T]] = new CanBeIdentifier[TypeTag[T]] { - def toIdentifier(typeTag: TypeTag[T]): TypeTagIdentifier = TypeTagIdentifier(typeTag.tpe) - } - - /** Implementation to implicitly transform a Scala Type into an `Identifier` */ - implicit object TypeCanBeIdentifier extends CanBeIdentifier[Type] { - def toIdentifier(tpe: Type): Identifier = TypeTagIdentifier(tpe) - } - - /** Implementation to implicitly transform an `Identifier` implementation into an `Identifier` */ - implicit def identifierCanBeIdentifier[I <: Identifier]: CanBeIdentifier[I] = new CanBeIdentifier[I] { - def toIdentifier(id: I): Identifier = id - } -} - -/** Identifier created from any Scala type - * @param tpe - * instance that will be defined as in `Identifier` - */ -final class TypeTagIdentifier private (val tpe: Type) extends Identifier { - - /** @inheritdoc */ - def sameAs(other: Identifier): Boolean = - other match { - case TypeTagIdentifier(otherTpe) if ReflectionHelper.isAssignableFrom(otherTpe, tpe) => true - case _ => false - } - - override def equals(obj: Any): Boolean = obj match { - case that: TypeTagIdentifier => this.tpe == that.tpe - case _ => false - } - override def hashCode(): Int = tpe.hashCode() - override def toString: String = s"TypeTagIdentifier($tpe)" -} - -object TypeTagIdentifier { - - /** Generates an `Identifier` from a type parameter within TypeTag - * @tparam T - * `TypeTag` containing type parameter - * @return - * Generated `Identifier` - */ - def typeId[T: TypeTag]: TypeTagIdentifier = apply(implicitly[TypeTag[T]].tpe) - - def apply(tpe: Type): TypeTagIdentifier = - new TypeTagIdentifier(tpe.dealias) - - def unapply(that: TypeTagIdentifier): Some[Type] = Some(that.tpe) -} - -/** Defines an identifier from a `String` - * @param str - * `String` that will be the identifier - */ -case class StringIdentifier(str: String) extends Identifier { - - /** @inheritdoc */ - def sameAs(other: Identifier): Boolean = other match { - case StringIdentifier(`str`) => true - case _ => false - } -} - -/** Wraps a delegated `Identifier` as a required or not required - * @param delegate - * delegated `Identifier` - * @param isRequired - * true if the wrapped identifier should be required - */ -case class RequiredIdentifier(delegate: Identifier, isRequired: Boolean) extends Identifier { - - /** @inheritdoc */ - def sameAs(other: Identifier): Boolean = other match { - case r: RequiredIdentifier => delegate sameAs r.delegate - case _ => delegate sameAs other - } - - /** @inheritdoc */ - override def required: Boolean = isRequired -} diff --git a/src/main/scala/scaldi/Injectable.scala b/src/main/scala/scaldi/Injectable.scala deleted file mode 100644 index f1ad8d5..0000000 --- a/src/main/scala/scaldi/Injectable.scala +++ /dev/null @@ -1,416 +0,0 @@ -package scaldi - -import scaldi.TypeTagIdentifier._ -import scaldi.util.ReflectionHelper -import scaldi.util.Util._ -import scaldi.util.constraints.NotNothing - -import scala.language.{implicitConversions, postfixOps} -import scala.reflect.runtime.universe.TypeTag - -/** Provides injection DSL. You can extend it in your classes in order to use inject methods. - * - * The only responsibility of this trait is to provide you with inject function (so it just provides nice syntax for - * injecting dependencies). - * - * In order to actually find and inject dependencies, `inject` method always takes an implicit parameter of type - * `Injector`. - * - * Example: - * {{{ - * Application (implicit inj: Injector) extends Injectable { - * protected val db = inject [Database] // database can now be used as an instance of Database class` - * } - * }}} - */ -trait Injectable extends Wire { - - /** Injects a dependency that was previously defined in a module - * - * Example: `val database = inject [Database] // database can now be used as an instance of Database class` - * - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type T is available at the runtime - * @param nn - * ensures, that type T is not inferred as `Nothing` by scala compiler, since inject needs to know the actual type - * at the runtime - * @tparam T - * type of the injected dependency - * @return - * instance of injected dependency - */ - protected def inject[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): T = - List[Identifier](typeId[T]) |> - (ids => injectWithDefault[T](injector, noBindingFound(ids))(ids)) - - /** Injects a dependency defined by a constraint. - * - * Usually used when there are more than one injections for a defined type `T` - * - * Example: - * {{{ - * binding identifiedBy 'host to "hostName" - * val host = inject[String]('host) // equals to "hostName" - * val db = inject (by default defaultDb) // notice that type `T` is optional in inferred in this case - * }}} - * - * @param constraints - * constraints helping to define what dependency of the type `T` to inject (typically an identifier, string or a - * default value) - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param nn - * ensures, that type `T` is not inferred as `Nothing` by scala compiler, since inject needs to know the actual - * type at the runtime - * @tparam T - * type of the injected dependency - * @return - * instance of injected dependency - */ - protected def inject[T]( - constraints: => InjectConstraints[T] - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): T = - List(typeId[T]) ++ constraints.identifiers |> - (ids => injectWithDefault[T](injector, constraints.default map (_()) getOrElse noBindingFound(ids))(ids)) - - /** Injects a dependency that was previously defined as a provider in a module - * - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param nn - * ensures, that type `T` is not inferred as `Nothing` by scala compiler, since inject needs to know the actual - * type at the runtime - * @tparam T - * type of the injected dependency - * @return - * a new instance of injected dependency - */ - protected def injectProvider[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): () => T = - () => inject(injector, tt, nn) - - /** Injects a dependency (defined by a constraint) that was previously defined as a provider in a module. - * - * Usually used when there are more than one provider for a defined type `T`. - * - * @param constraints - * constraints helping to define what dependency of type `T` to inject (typically an identifier, string or a - * default value) - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param nn - * ensures, that type `T` is not inferred as `Nothing` by scala compiler, since inject needs to know the actual - * type at the runtime - * @tparam T - * type of the injected dependency - * @return - * a new instance of injected dependency - */ - protected def injectProvider[T]( - constraints: => InjectConstraints[T] - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): () => T = - () => inject(constraints)(injector, tt, nn) - - /** Inject all dependencies of type `T` that were defined in a module. - * - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param nn - * ensures, that type `T` is not inferred as `Nothing` by scala compiler, since inject needs to know the actual - * type at the runtime - * @tparam T - * type of the injected dependency - * @return - * a list of injected instances satisfying the type `T` constraint - */ - protected def injectAllOfType[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): List[T] = - injectAllOfType[T]()(injector, tt, nn) - - /** Inject all dependencies of type `T` that were defined in a module and that are defined by supplied identifiers. - * - * @param identifiers - * identifiers that were defined in module for requested injections - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param nn - * ensures, that type `T` is not inferred as `Nothing` by scala compiler, since inject needs to know the actual - * type at the runtime - * @tparam T - * type of the injected dependency - * @return - * a list of injected instances satisfying the type `T` constraint and identifiers - */ - protected def injectAllOfType[T]( - identifiers: Identifier* - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): List[T] = - List[Identifier](typeId[T]) ++ identifiers |> - (ids => injector getBindings ids flatMap (_.get) map (_.asInstanceOf[T])) - - /** Injects all dependencies that are defined by identifiers. - * - * @param identifiers - * identifiers that were defined in module for requested injections - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @return - * a list of injected instances defined by identifiers - */ - protected def injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] = - injector getBindings identifiers.toList flatMap (_.get) - - /** Setup an injection that returns default value if an injection with supplied identifiers is not found. - * - * @param injector - * current Injector, used to lookup bindings - * @param default - * default value to return in case injection is not found - * @param identifiers - * identifiers that define requested injection - * @tparam T - * type of the injected dependency - * @return - * injection defined by identifiers or default value if injection is not found - */ - protected def injectWithDefault[T](injector: Injector, default: => T)(identifiers: List[Identifier]): T = - injector getBinding identifiers flatMap (_.get) map (_.asInstanceOf[T]) getOrElse default - - /** Injects a dependency defined by type `T`. If dependency is not found, initializes it with the default value from - * the constructor of type `T`. - * - * This implies, that constructor must have one constructor with parameter `paramName` which has a default value. - * Method is part of `injected` macro implementation and not intended to be used outside of it. - * - * Uses reflection. - * - * @param paramName - * name of the constructor argument with a default value - * @param injector - * implicit [[Injector]], should be defined in the scope. It's used to lookup bindings - * @param tt - * ensures that meta-information if type `T` is available at the runtime - * @param ct - * ensures that meta-information if type `C` is available at the runtime - * @tparam T - * type of the injected dependency - * @tparam C - * class of constructor in case dependency cannot be found by `T` identifier - * @return - * instance of injected dependency. If not found by, initializes one using constructor `C` - */ - protected def injectWithConstructorDefault[T, C]( - paramName: String - )(implicit injector: Injector, tt: TypeTag[T], ct: TypeTag[C]): T = - injectWithDefault[T](injector, ReflectionHelper.getDefaultValueOfParam[T, C](paramName))(List(typeId[T])) - - /** Helper method for throwing a readable exception when a binding could not be found. - * - * @param identifiers - * a list of identifiers - */ - protected def noBindingFound(identifiers: List[Identifier]): Nothing = - throw new InjectException( - identifiers map (" * " +) mkString ("No binding found with following identifiers:\n", "\n", "") - ) - - /** Implicit cast of classes that can be identifiers to an `InjectConstraints` with the identified as a first element. - * - * Often used when a list of identifiers should be passed (for example for `inject(constraint)` method). - * - * This lets us to put the identifier in a first place to make the parameters look readable. - * - * @param target - * Instance of a class that qualifies as an identifier - * @tparam T - * type that qualifies as an identifier - * @return - * InjectConstraints - */ - implicit protected def canBeIdentifiedToConstraints[T: CanBeIdentifier](target: T): InjectConstraints[Nothing] = - new InjectConstraints[Nothing](initialIdentifiers = List(implicitly[CanBeIdentifier[T]].toIdentifier(target))) - - /** Convenience field to make the injection look more readable when used with identifiers. - * - * Example: `inject [Database] (identified by 'local)` - */ - protected val identified = new IdentifiedWord - - /** Convenience field to make the injection look more readable when used with default values for the injection. - * - * Example: `inject [Database] (by default defaultDb)` - */ - protected val by = new ByWord -} - -/** Exactly the same as Injectable trait, but with all methods made public */ -trait OpenInjectable extends Injectable { - def injectOpt[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): Option[T] = { - val bindings = injectAllOfType[T] - if (bindings.length == 1) bindings.headOption else None - } - - def injectOpt[T]( - constraints: => InjectConstraints[T] - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): Option[T] = - List(typeId[T]) ++ constraints.identifiers |> - (ids => injector getBinding ids flatMap (_.get) map (_.asInstanceOf[T]) orElse constraints.default.map(_.apply())) - - override def inject[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): T = - super.inject[T](injector, tt, nn) - - override def inject[T]( - constraints: => InjectConstraints[T] - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): T = - super.inject[T](constraints)(injector, tt, nn) - - override def injectProvider[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): () => T = - super.injectProvider(injector, tt, nn) - - override def injectProvider[T]( - constraints: => InjectConstraints[T] - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): () => T = - super.injectProvider(constraints)(injector, tt, nn) - - override def injectAllOfType[T](implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): List[T] = - super.injectAllOfType[T](injector, tt, nn) - - override def injectAllOfType[T]( - identifiers: Identifier* - )(implicit injector: Injector, tt: TypeTag[T], nn: NotNothing[T]): List[T] = - super.injectAllOfType[T](identifiers: _*)(injector, tt, nn) - - override def injectAll(identifiers: Identifier*)(implicit injector: Injector): List[Any] = - super.injectAll(identifiers: _*)(injector) - - override def injectWithDefault[T](injector: Injector, default: => T)(identifiers: List[Identifier]): T = - super.injectWithDefault[T](injector, default)(identifiers) - - override def injectWithConstructorDefault[T, C]( - paramName: String - )(implicit injector: Injector, tt: TypeTag[T], ct: TypeTag[C]): T = - super.injectWithConstructorDefault[T, C](paramName)(injector, tt, ct) - - override def noBindingFound(identifiers: List[Identifier]): Nothing = super.noBindingFound(identifiers) - - implicit override def canBeIdentifiedToConstraints[T: CanBeIdentifier](target: T): InjectConstraints[Nothing] = - super.canBeIdentifiedToConstraints[T](target) - - override val identified = new IdentifiedWord - - override val by = new ByWord -} - -/** Companion object of Injectable which can be just imported in contrast to Injectable trait which always need to be - * extended. After importing it, you can use an injection DSL without extending the trait. - * - * Example: - * {{{ - * import scaldi.Injectable._ - * - * val database = inject [Database] - * }}} - */ -object Injectable extends OpenInjectable - -/** Helper class to make injection by identifier more readable. - * - * @param default - * default value for injected instance. It would be used if biding is not found in the `Injector`. - * @param initialIdentifiers - * identifiers - * @tparam T - * type of the dependency being injected - */ -class IdentifiedWord[+T](default: Option[() => T] = None, initialIdentifiers: List[Identifier] = Nil) { - def by[I: CanBeIdentifier](target: I*): InjectConstraints[T] = - InjectConstraints(default, initialIdentifiers ++ (target map implicitly[CanBeIdentifier[I]].toIdentifier)) -} - -/** Helper class to make injection with default value more readable. - * - * @param initialIdentifiers - * identifiers - */ -class ByWord(initialIdentifiers: List[Identifier] = Nil) { - def default[T](fn: => T) = new InjectConstraints[T](Some(() => fn), initialIdentifiers) -} - -/** A wrapper for a default value for the injection and for its identifiers. - * - * It is here to make injection constraints look like natural language. - * - * @param default - * default value for injected instance. It would be used if biding is not found in the `Injector`. - * @param initialIdentifiers - * identifiers - * @tparam T - * type of the dependency being injected - */ -case class InjectConstraints[+T](default: Option[() => T] = None, initialIdentifiers: List[Identifier] = Nil) { - var identifiers: List[Identifier] = initialIdentifiers - - /** Appends identifier to a current list of identifiers. - * - * @param ids - * one or many other identifiers - */ - def and(ids: Identifier*): this.type = { - identifiers = identifiers ++ ids - this - } - - /** Helper method to define a default value for injection. - * - * Example: `inject [Database] ('database and by default defaultDb)` - * - * @param by - * `ByWord` that follows the "and" - */ - def and(by: ByWord): ByWord = new ByWord(identifiers) - - /** Alias to "and" - * - * Example: `inject [Database] ('remote which by default defaultDb)` - * - * @param by - * ByWord that follows the "which" - */ - def which(by: ByWord): ByWord = and(by) - - /** Alias to "and" - * - * Example: `inject [Database] ('remote that by default defaultDb)` - * - * @param by - * `ByWord` that follows the "that" - */ - def that(by: ByWord): ByWord = and(by) - - /** Alias to "and" - * - * Example: `inject [Database] ('remote is by default defaultDb)` - * - * @param by - * `ByWord` that follows the "is" - */ - def is(by: ByWord): ByWord = and(by) - - /** Helper method to make possible that "identified" follows "and" word. - * - * Example: `inject [Database] (by default defaultDb and identified by 'remote)` - * - * @param by - * `IdentifiedWord` that follows the "and" - */ - def and(by: IdentifiedWord[_]): IdentifiedWord[T] = new IdentifiedWord[T](default, identifiers) -} diff --git a/src/main/scala/scaldi/Injector.scala b/src/main/scala/scaldi/Injector.scala deleted file mode 100644 index 3340f1e..0000000 --- a/src/main/scala/scaldi/Injector.scala +++ /dev/null @@ -1,368 +0,0 @@ -package scaldi - -import scaldi.util.Util._ - -import scala.annotation.implicitNotFound - -/** A base entity that encapsulates the binding lookup mechanism */ -trait Injector { - - /** Single binding lookup - * @param identifiers - * binding's identifiers - * @return - * option with binding (`None` if not found) - */ - def getBinding(identifiers: List[Identifier]): Option[Binding] - - /** List of bindings lookup - * @param identifiers - * bindings identifiers - * @return - * list of found bindings - */ - def getBindings(identifiers: List[Identifier]): List[Binding] - - /** Composes two injectors. Polymorphic, needs CanCompose trait implementation available in the scope - * @param other - * other injector to be composed with - * @param comp - * CanCompose implementation that will handle the composition of the two injectors - * @tparam I - * injector's type to be composed with - * @tparam R - * resulting injector's type - * @return - * composed injector, depends on CanCompose trait's implementation - */ - def ++[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[this.type, I, R]): R = - comp.compose(this, other) - - /** Composes two injectors. Note that the operands are inverted because the method starts with ":" Polymorphic, needs - * CanCompose trait implementation available in the scope - * @param other - * other injector to be composed with - * @param comp - * CanCompose implementation that will handle the composition of the two injectors - * @tparam I - * injector's type to be composed with - * @tparam R - * resulting injector's type - * @return - * composed injector, depends on CanCompose trait's implementation - */ - def ::[I <: Injector, R <: Injector](other: I)(implicit comp: CanCompose[I, this.type, R]): R = - comp.compose(other, this) -} - -/** Mutable injectors that have a lifecycle associated with them. */ -trait MutableInjector extends Injector - -/** Immutable injectors that don't have any lifecycle associated with it. */ -trait ImmutableInjector extends Injector - -object Injector extends LowPriorityImmutableInjectorComposition { - - /** Provides an implementation for implicit `CanCompose` for a composition between an empty injector and an another - * empty injector - */ - implicit object nilWithNilComposition extends CanCompose[NilInjector.type, NilInjector.type, NilInjector.type] { - def compose(cmp1: NilInjector.type, cmp2: NilInjector.type): NilInjector.type = NilInjector - } - - /** Provides an implementation for implicit `CanCompose` for a composition between an empty injector with a non-empty - * injector - */ - implicit def nilWithOtherInjectorComposition[I <: Injector]: CanCompose[NilInjector.type, I, I] = - new CanCompose[NilInjector.type, I, I] { - def compose(cmp1: NilInjector.type, cmp2: I): I = cmp2 - } - - /** Provides an implementation for implicit `CanCompose` for a composition between an non-empty injector and an empty - * injector - */ - implicit def otherInjectorWithNilComposition[I <: Injector]: CanCompose[I, NilInjector.type, I] = - new CanCompose[I, NilInjector.type, I] { - def compose(cmp1: I, cmp2: NilInjector.type): I = cmp1 - } -} - -trait LowPriorityImmutableInjectorComposition extends LowPriorityMutableInjectorComposition { - - /** Provides an implementation for implicit `CanCompose` for a composition between two immutable injectors - * @tparam I1 - * immutable injector - * @tparam I2 - * immutable injector - * @return - * composition between two immutable injectors - */ - implicit def immutableComposition[I1 <: ImmutableInjector, I2 <: ImmutableInjector] - : CanCompose[I1, I2, ImmutableInjectorAggregation] = - new CanCompose[I1, I2, ImmutableInjectorAggregation] { - def compose(cmp1: I1, cmp2: I2) = new ImmutableInjectorAggregation(List(cmp1, cmp2)) - } -} - -trait LowPriorityMutableInjectorComposition { - - /** Provides an implementation for implicit `CanCompose` for a composition between two mutable injectors - * @tparam I1 - * mutable injector - * @tparam I2 - * mutable injector - * @return - * composition between two mutable injectors - */ - implicit def mutableInjectorComposition[I1 <: Injector, I2 <: Injector] - : CanCompose[I1, I2, MutableInjectorAggregation] = - new CanCompose[I1, I2, MutableInjectorAggregation] { - def compose(cmp1: I1, cmp2: I2) = new MutableInjectorAggregation(List(cmp1, cmp2)) - } -} - -/** A very simple implementation of an injector that just delegates the binding lookup to some other injector. This will - * protect the lifecycle of the delegated injector from any changes. It is useful in a case of a scoped binding: if you - * want to use the injector in a composition, but don't want the composition's lifecycle to influence it. In that case, - * before creating the composition wrap the injector into the `ImmutableWrapper`. - * @param delegate - * another Injector to which delegate the binding - */ -class ImmutableWrapper(delegate: Injector) extends Injector with ImmutableInjector { - def getBinding(identifiers: List[Identifier]): Option[Binding] = - delegate.getBinding(identifiers) - - def getBindings(identifiers: List[Identifier]): List[Binding] = - delegate.getBindings(identifiers) -} - -object ImmutableWrapper { - - /** Standard factory method for Immutable Wrapper. All binding lookup will be delegated to the injector provided in - * the parameters - * @param delegate - * injector to which delegate binding lookup - * @return - * ImmutableWrapper - */ - def apply(delegate: Injector) = new ImmutableWrapper(delegate) -} - -/** Typeclass that will handle the composition of different injectors - * @tparam A - * type of the first injector in the composition - * @tparam B - * type of the second injector in the composition - * @tparam R - * type of the resulting injector in the composition - */ -@implicitNotFound(msg = "Cannot compose ${A} with ${B}. Please consider defining CanCompose for such composition.") -trait CanCompose[-A, -B, +R] { - - /** Composes two injectors - * @param cmp1 - * first injector in the composition - * @param cmp2 - * second injector in the composition - * @return - * composed injector - */ - def compose(cmp1: A, cmp2: B): R -} - -/** The result of the composition of two or more of the immutable injectors - * @param chain - * currently composed immutable injectors - */ -class ImmutableInjectorAggregation(chain: List[ImmutableInjector]) extends Injector { - - /** @inheritdoc */ - def getBinding(identifiers: List[Identifier]): Option[Binding] = - chain.view.map(_ getBinding identifiers).collectFirst { case Some(b) => b } - - /** @inheritdoc */ - def getBindings(identifiers: List[Identifier]): List[Binding] = chain.flatMap(_ getBindings identifiers) -} - -/** The result of the composition of two or more of the mutable injectors - * @param chain - * currently composed immutable injectors - */ -class MutableInjectorAggregation(chain: List[Injector]) - extends InjectorWithLifecycle[MutableInjectorAggregation] - with MutableInjectorUser - with ShutdownHookLifecycleManager { - initInjector(this) - - /** Goes through composed injectors to find a binding having identifiers - * @param identifiers - * list of identifiers identifying a dependency - * @return - * a binding identified by identifiers - */ - def getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] = - chain.view - .map { - case child: InjectorWithLifecycle[_] => child getBindingInternal identifiers - case child => child getBinding identifiers map BindingWithLifecycle.apply - } - .collectFirst { case Some(b) => b } - - /** Goes through composed injectors to find bindings having identifiers - * @param identifiers - * list of identifiers identifying dependencies - * @return - * a list of bindings identified by identifiers - */ - def getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] = - chain.flatMap { - case child: InjectorWithLifecycle[_] => child getBindingsInternal identifiers - case child => child getBindings identifiers map BindingWithLifecycle.apply - } - - /** Mutates current injector replacing it with the one in the parameters - * @param newParentInjector - * the replacement for current injector - */ - override def injector_=(newParentInjector: Injector): Unit = { - super.injector_=(newParentInjector) - initInjector(newParentInjector) - } - - /** Initialize bindings that are not lazy in composed injectors - * @param lifecycleManager - * entity that will manage the lifecycle of the eager bindings - */ - protected def init(lifecycleManager: LifecycleManager): () => Unit = { - val childInits = chain.flatMap { - case childInjector: InjectorWithLifecycle[_] => Some(childInjector.partialInit(lifecycleManager)) - case _ => None - }.flatten - - () => childInits.foreach(_()) - } - - /** Initialize all injectors in the composition by setting their parent injector to the one passed in the parameters. - * @param newParentInjector - * the injector which will be parent injector for composed injectors - */ - private def initInjector(newParentInjector: Injector): Unit = - chain foreach { - case childInjector: MutableInjectorUser => childInjector.injector = newParentInjector - case _ => // skip - } -} - -/** Trait for injectors that are freezable i.e. may no longer be modified from e certain point */ -trait Freezable { - - /** Determines if the injector is frozen - * @return - * true if injector may no longer be modified, false otherwise - */ - protected def isFrozen: Boolean -} - -/** Contains implicit reference to injector: the final injector composition which is used by inject. Injector - * aggregation will set it during the initialization phase - */ -trait MutableInjectorUser extends MutableInjector { self: Injector with Freezable => - private var _injector: Injector = this - - implicit def injector: Injector = _injector - - implicit val injectorFn: () => Injector = () => injector - - /** Mutates current injector replacing it with the one in the parameters. Works only if current injector is not frozen - * @param newParentInjector - * the replacement for current injector - */ - def injector_=(newParentInjector: Injector): Unit = { - if (isFrozen) throw new InjectException("Injector already frozen, so you can't mutate it anymore!") - - _injector = newParentInjector - } -} - -/** Trait for injectors that are initializeable i.e. have initialization phase - * @tparam I - * type for initializeable injector - */ -trait Initializeable[I] extends Freezable { this: I with LifecycleManager => - private var initialized = false - - /** Initializes binding that are not lazy - * @return - * initializeable injector - */ - def initNonLazy(): I = partialInit(this) match { - case Some(fn) => - fn() - this - case None => - this - } - - /** Composes function for initialization - * @param lifecycleManager - * where to look for initializations - * @return - * initialization function - */ - def partialInit(lifecycleManager: LifecycleManager): Option[() => Unit] = - if (!initialized) { - val initFn = init(lifecycleManager) - - initialized = true - Some(initFn) - } else None - - protected def isFrozen: Boolean = initialized - - /** Initializes bindings that are not Lazy - * @param lifecycleManager - * entity that will manage the lifecycle of the eager bindings - */ - protected def init(lifecycleManager: LifecycleManager): () => Unit -} - -/** Trait for injectors that have lifecycle - * @tparam I - * type for initializeable injector - */ -trait InjectorWithLifecycle[I <: InjectorWithLifecycle[I]] - extends Injector - with Initializeable[I] - with MutableInjector { - this: I with LifecycleManager with Initializeable[I] => - - /** @inheritdoc */ - final def getBinding(identifiers: List[Identifier]): Option[Binding] = - initNonLazy() |> (_ getBindingInternal identifiers map (Binding.apply(this, _))) - - /** @inheritdoc */ - final def getBindings(identifiers: List[Identifier]): List[Binding] = - initNonLazy() |> (_ getBindingsInternal identifiers map (Binding.apply(this, _))) - - /** Binding lookup logic - * @param identifiers - * list of identifiers identifying a dependency - * @return - * a binding identified by identifiers - */ - def getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] - - /** Bindings lookup logic - * @param identifiers - * list of identifiers identifying dependencies - * @return - * a list of bindings identified by identifiers - */ - def getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] -} - -/** Custom exception for injectors - * @param message - * String message describing the problem - */ -class InjectException(message: String) extends RuntimeException(message) diff --git a/src/main/scala/scaldi/Lifecycle.scala b/src/main/scala/scaldi/Lifecycle.scala deleted file mode 100644 index fae6229..0000000 --- a/src/main/scala/scaldi/Lifecycle.scala +++ /dev/null @@ -1,72 +0,0 @@ -package scaldi - -import java.util.concurrent.atomic.AtomicBoolean - -import scaldi.util.Util._ -import scala.util.control.NonFatal -import scala.util.{Failure, Success, Try} -import scala.util.control.Breaks._ - -case class BindingLifecycle[-T]( - initialize: Option[T => Unit] = None, - destroy: Option[T => Unit] = None -) { - def initializeObject(obj: T): Unit = obj <| (o => initialize foreach (_(o))) - def destroyObject(obj: T): Unit = obj <| (o => destroy foreach (_(o))) -} - -object BindingLifecycle { - def empty[T]: BindingLifecycle[T] = BindingLifecycle[T]() -} - -trait LifecycleManager { - val IgnoringErrorHandler: Throwable => Boolean = - (e: Throwable) => { e.printStackTrace(); true } - - def addDestroyable(fn: () => Unit): Unit - - def destroy(errorHandler: Throwable => Boolean = IgnoringErrorHandler): Unit -} - -trait ShutdownHookLifecycleManager extends LifecycleManager { - private var toDestroy: List[() => Unit] = Nil - private val destroyed = new AtomicBoolean(false) - private var hookThread: Option[Thread] = None - - def addDestroyable(fn: () => Unit): Unit = this.synchronized { - if (destroyed.get()) - throw new IllegalStateException("Can't add more destroyable callbacks because the Injector is already destroyed.") - if (toDestroy.isEmpty) addShutdownHook() - - toDestroy = toDestroy :+ fn - } - - private def addShutdownHook(): Unit = - hookThread = Some(sys.addShutdownHook(doDestroyAll(IgnoringErrorHandler))) - - def destroy(errorHandler: Throwable => Boolean = IgnoringErrorHandler): Unit = - doDestroyAll(errorHandler, manual = true) - - private def doDestroyAll(errorHandler: Throwable => Boolean, manual: Boolean = false): Unit = this.synchronized { - - breakable { - toDestroy.reverse.foreach { d => - Try(d()) match { - case Failure(error) => - if (!errorHandler(error)) break() - case Success(_) => // just continue - } - } - } - - destroyed.set(true) - - if (manual) - try hookThread foreach Runtime.getRuntime.removeShutdownHook - catch { - case NonFatal(_) => // do nothing - } - - toDestroy = Nil - } -} diff --git a/src/main/scala/scaldi/Module.scala b/src/main/scala/scaldi/Module.scala deleted file mode 100644 index 04e3b7c..0000000 --- a/src/main/scala/scaldi/Module.scala +++ /dev/null @@ -1,379 +0,0 @@ -package scaldi - -import java.io.{File, FileInputStream, InputStream} -import java.util.Properties - -import com.typesafe.config._ -import scaldi.util.Util._ - -import scala.concurrent.duration.Duration -import scala.jdk.CollectionConverters._ -import scala.reflect.runtime.universe.{typeOf, Type} -import scala.sys._ -import scala.util.control.NonFatal - -/** Module is a place where you declare your bindings. It's also the most common injector that you can use in most - * cases. It's a mutable injector so it can have a lifecycle and it also provides nice DSL for the bindings. - * - * Module is an Injectable instance thanks to that you can inject other dependencies in module's bindings. - */ -trait Module - extends WordBinder - with InjectorWithLifecycle[Module] - with Injectable - with MutableInjectorUser - with ShutdownHookLifecycleManager { - - /** @inheritdoc */ - def getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] = - wordBindings find (_ isDefinedFor identifiers) - - /** @inheritdoc */ - def getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] = - wordBindings filter (_ isDefinedFor identifiers) - - /** @inheritdoc */ - protected def init(lifecycleManager: LifecycleManager): () => Unit = initEagerWordBindings(lifecycleManager) -} - -@deprecated( - "StaticModule is deprecated and will be removed soon. As an alternative you can " + - "use `ImmutableWrapper` injector to define an immutability boundary in composition or create " + - "your own injector that is marked as `ImmutableInjector`.", - "0.5" -) -trait StaticModule extends ReflectionBinder with ImmutableInjector with Injectable { - - /** @inheritdoc */ - def getBinding(identifiers: List[Identifier]): Option[Binding] = reflectiveBindings find (_ isDefinedFor identifiers) - - /** @inheritdoc */ - def getBindings(identifiers: List[Identifier]): List[Binding] = reflectiveBindings filter (_ isDefinedFor identifiers) - - implicit val injector: Injector = this -} - -/** Same as module, but with accessible `Injectable`'s methods. */ -class DynamicModule - extends WordBinder - with InjectorWithLifecycle[DynamicModule] - with OpenInjectable - with MutableInjectorUser - with ShutdownHookLifecycleManager { - - /** @inheritdoc */ - def getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] = - wordBindings find (_ isDefinedFor identifiers) - - /** @inheritdoc */ - def getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] = - wordBindings filter (_ isDefinedFor identifiers) - - /** @inheritdoc */ - protected def init(lifecycleManager: LifecycleManager): () => Unit = initEagerWordBindings(lifecycleManager) -} - -object DynamicModule { - - /** Standard factory method that accepts function that may initialize DynamicModule' bindings upon creation. It lets - * initializing module with function instead of extending it - * - * {{{ - * implicit val injector = DynamicModule({ module => - * module.bind [Int] identifiedBy 'httpPort to 8081 - * module.bind [Server] identifiedBy 'http to HttpServer(inject [String] ('httpHost), inject [Int] ('httpPort)) - * module.binding identifiedBy 'database and "local" to MysqlDatabase("my_app") - * }) - * }}} - * - * @param initBindingsFn - * function initializing DynamicModule upon creation - * @return - * initialized DynamicModule - */ - def apply(initBindingsFn: DynamicModule => Unit): Injector = new DynamicModule <| initBindingsFn -} - -/** Factory for creating injector from command line arguments */ -object Args { - - /** Factory method used to initialize a `Module` with binded command line arguments - * @param args - * array that will be binded to `'args` identifier - * @return - * new `DynamicModule` with a binding defined for command line arguments - */ - def apply(args: Array[String]): Injector = - DynamicModule(m => m.bind[Array[String]] identifiedBy Symbol("args") toNonLazy args) -} - -/** Empty injector, used for injector combination or as a filler where injector is required, but there are no bindings. - */ -object NilInjector extends ImmutableInjector { - - /** @inheritdoc */ - def getBinding(identifiers: List[Identifier]): Option[Binding] = None - - /** @inheritdoc */ - def getBindings(identifiers: List[Identifier]): List[Binding] = Nil -} - -/** Used to look up for simple bindings in system properties. */ -object SystemPropertiesInjector extends RawInjector { - - /** @inheritdoc - * @param name - * system property's name - * @return - * system property defined by `name` - */ - def getRawValue(name: String): Option[String] = props get name -} - -/** Used to look for simple bindings in supplied properties (hash table) - * @param properties - * hash table with properties - */ -class PropertiesInjector private (properties: Properties) extends RawInjector { - - /** @inheritdoc - * @param name - * property's name - * @return - * property defined by `name` as instance of String - */ - def getRawValue(name: String): Option[String] = Option(properties get name).map(_.asInstanceOf[String]) -} - -/** Factories to handle different type of properties' source. */ -object PropertiesInjector { - - /** Factory method to retrieve properties from a file name. - * @param fileName - * name of the file with properties - * @return - * an instance of `PropertiesInjector` with properties from file with supplied file name - */ - def apply(fileName: String): PropertiesInjector = apply(new File(fileName)) - - /** Factory method to retrieve properties from a file. - * @param file - * file with properties - * @return - * an instance of `PropertiesInjector` with properties from supplied file - */ - def apply(file: File): PropertiesInjector = apply(new FileInputStream(file)) - - /** Factory method to retrieve properties from an input stream. - * @param stream - * input stream which will supply properties - * @return - * an instance of `PropertiesInjector` with properties from input stream - */ - def apply(stream: InputStream): PropertiesInjector = apply(new Properties <| (_ load stream)) - - /** Factory method to retrieve properties from a Properties instance. - * @param properties - * `Properties` instance with properties - * @return - * an instance of `PropertiesInjector` with properties supplied `Properties` instance - */ - def apply(properties: Properties): PropertiesInjector = new PropertiesInjector(properties) -} - -/** Injector with bindings found in supplied typesafe configuration - * @param config - * typesafe configuration to get bindings from - */ -class TypesafeConfigInjector private (config: Config) extends RawInjector { - - /** @inheritdoc */ - override protected def discoverBinding(name: String, tpe: Type, ids: List[Identifier]): Option[Binding] = { - val value = - try - if (tpe =:= typeOf[Int]) Some(config.getInt(name)) - else if (tpe =:= typeOf[List[Int]]) Some(config.getIntList(name).asScala.toList map (_.intValue)) - else if (tpe =:= typeOf[Integer]) Some(config.getInt(name): java.lang.Integer) - else if (tpe =:= typeOf[List[Integer]]) Some(config.getIntList(name).asScala.toList) - else if (tpe =:= typeOf[Long]) Some(config.getLong(name)) - else if (tpe =:= typeOf[List[Long]]) Some(config.getLongList(name).asScala.toList map (_.longValue)) - else if (tpe =:= typeOf[java.lang.Long]) Some(config.getLong(name): java.lang.Long) - else if (tpe =:= typeOf[List[java.lang.Long]]) Some(config.getLongList(name).asScala.toList) - else if (tpe =:= typeOf[Double]) Some(config.getDouble(name)) - else if (tpe =:= typeOf[List[Double]]) Some(config.getDoubleList(name).asScala.toList map (_.doubleValue)) - else if (tpe =:= typeOf[java.lang.Double]) Some(config.getDouble(name): java.lang.Double) - else if (tpe =:= typeOf[List[java.lang.Double]]) Some(config.getDoubleList(name).asScala.toList) - else if (tpe =:= typeOf[Boolean]) Some(config.getBoolean(name)) - else if (tpe =:= typeOf[List[Boolean]]) Some(config.getBooleanList(name).asScala.toList map (_.booleanValue)) - else if (tpe =:= typeOf[java.lang.Boolean]) Some(config.getBoolean(name): java.lang.Boolean) - else if (tpe =:= typeOf[List[java.lang.Boolean]]) Some(config.getBooleanList(name).asScala.toList) - else if (tpe =:= typeOf[File]) Some(new File(config.getString(name))) - else if (tpe =:= typeOf[List[File]]) Some(config.getStringList(name).asScala.toList map (new File(_))) - else if (tpe =:= typeOf[Duration]) Some(Duration(config.getString(name))) - else if (tpe =:= typeOf[List[Duration]]) Some(config.getStringList(name).asScala.toList map (Duration(_))) - else if (tpe =:= typeOf[String]) Some(config.getString(name)) - else if (tpe =:= typeOf[List[String]]) Some(config.getStringList(name).asScala.toList) - else if (tpe =:= typeOf[Config]) Some(config.getConfig(name)) - else if (tpe =:= typeOf[List[Config]]) Some(config.getConfigList(name).asScala.toList) - else if (tpe =:= typeOf[ConfigValue]) Some(config.getValue(name)) - else if (tpe =:= typeOf[ConfigList]) Some(config.getList(name)) - else if (tpe =:= typeOf[ConfigObject]) Some(config.getObject(name)) - else if (tpe =:= typeOf[List[ConfigObject]]) Some(config.getObjectList(name).asScala.toList) - else None - catch { - case NonFatal(_) => None - } - - value map (RawBinding(_, ids)) - } - - /** @inheritdoc */ - def getRawValue(name: String) = throw new IllegalStateException("Should not be used") -} - -/** Factories to handle different type of Typesafe config's source. */ -object TypesafeConfigInjector { - - /** Initializes injector with application's configuration. - * @return - * initialized injector - */ - def apply(): TypesafeConfigInjector = apply(ConfigFactory.load()) - - /** Initializes injector with the configuration found at `basename`. - * @param baseName - * the base name of configuration file - * @return - * initialized injector - */ - def apply(baseName: String): TypesafeConfigInjector = apply(ConfigFactory.load(baseName)) - - /** Initializes injector with the supplied config. - * @param config - * configuration instance - * @return - * initialized injector - */ - def apply(config: Config): TypesafeConfigInjector = new TypesafeConfigInjector(config) -} - -/** Abstract `Injector` implementation that may be extended by other injectors that get values from specific source - * (command line, typesafe config, properties, etc.) - */ -trait RawInjector extends Injector { - private var bindingCache: List[Binding] = Nil - - /** Used to retrieve value from other places than modules (config, system, etc.). - * @param name - * name of the value - * @return - * raw value defined by name - */ - def getRawValue(name: String): Option[String] - - /** @inheritdoc */ - def getBinding(identifiers: List[Identifier]): Option[Binding] = discoverBinding(identifiers) - - /** @inheritdoc */ - def getBindings(identifiers: List[Identifier]): List[Binding] = discoverBinding(identifiers).toList - - /** Retrieves bindings from cache based on supplied identifiers. - * @param ids - * identifiers describing binding - * @return - * found binding, `None` if binding was not found - */ - protected def discoverBinding(ids: List[Identifier]): Option[Binding] = - bindingCache find (_ isDefinedFor ids) orElse { - (ids match { - case TypeTagIdentifier(c) :: StringIdentifier(name) :: Nil => discoverBinding(name, c, ids) - case StringIdentifier(name) :: TypeTagIdentifier(c) :: Nil => discoverBinding(name, c, ids) - case _ => None - }) match { - case res @ Some(binding) => - bindingCache = bindingCache :+ binding - res - case None => None - } - } - - /** Retrieves value by name, converts it to specified type and associates it with supplied identifiers. - * @param name - * name of the value to bind - * @param tpe - * type of the value to bind - * @param ids - * identifiers of the resulting binding - * @return - * option with resulting binding (`None` if binding was not found by name) - */ - protected def discoverBinding(name: String, tpe: Type, ids: List[Identifier] = Nil): Option[Binding] = - getRawValue(name) flatMap (convert(_, tpe)) map (RawBinding(_, ids)) - - /** Converts value to a specified type. - * @param value - * supplied value - * @param tpe - * type to convert the value - * @return - * option with converted value (`None` if value could not be converted) - */ - private def convert(value: String, tpe: Type): Option[Any] = - try - if (tpe =:= typeOf[Int]) Some(value.toInt) - else if (tpe =:= typeOf[Integer]) Some(value.toInt: java.lang.Integer) - else if (tpe =:= typeOf[Long]) Some(value.toLong) - else if (tpe =:= typeOf[java.lang.Long]) Some(value.toLong: java.lang.Long) - else if (tpe =:= typeOf[Double]) Some(value.toDouble) - else if (tpe =:= typeOf[java.lang.Double]) Some(value.toDouble: java.lang.Double) - else if (tpe =:= typeOf[Boolean]) Some(value.toBoolean) - else if (tpe =:= typeOf[java.lang.Boolean]) Some(value.toBoolean: java.lang.Boolean) - else if (tpe =:= typeOf[File]) Some(new File(value)) - else if (tpe =:= typeOf[Duration]) Some(Duration(value)) - else if (tpe =:= typeOf[String]) Some(value) - else None - catch { - case NonFatal(_) => None - } -} - -/** Binding with a raw value, not converted to any specific type (value from system properties, configuration, etc.). - * @param value - * value of the binding - * @param identifiers - * identifiers defining the binding - */ -case class RawBinding(value: Any, identifiers: List[Identifier]) extends Binding { - - /** @inheritdoc */ - val condition: Option[() => Condition] = None - - /** @inheritdoc */ - override def get: Option[Any] = Some(value) - - /** @inheritdoc */ - override def isCacheable: Boolean = true -} - -/** Container that transforms a list of bindings into a valid `Injector` - * @param bindings - * function transforming injector into a list of bindings - */ -class SimpleContainerInjector(bindings: Injector => List[BindingWithLifecycle]) - extends MutableInjectorUser - with InjectorWithLifecycle[SimpleContainerInjector] - with ShutdownHookLifecycleManager { - lazy val preparedBindings: List[BindingWithLifecycle] = bindings(injector) - - /** @inheritdoc */ - def getBindingInternal(identifiers: List[Identifier]): Option[BindingWithLifecycle] = - preparedBindings find (_ isDefinedFor identifiers) - - /** @inheritdoc */ - def getBindingsInternal(identifiers: List[Identifier]): List[BindingWithLifecycle] = - preparedBindings filter (_ isDefinedFor identifiers) - - /** @inheritdoc */ - protected def init(lifecycleManager: LifecycleManager): () => Unit = - preparedBindings |> (b => () => b.filter(_.isEager).foreach(_ init lifecycleManager)) -} diff --git a/src/main/scala/scaldi/Wire.scala b/src/main/scala/scaldi/Wire.scala deleted file mode 100644 index 7f54101..0000000 --- a/src/main/scala/scaldi/Wire.scala +++ /dev/null @@ -1,144 +0,0 @@ -package scaldi - -import scaldi.internal.WireCrossHelper._ - -import scala.language.experimental.macros -import scala.reflect.macros.blackbox - -trait Wire { - def injected[T]: T = macro WireBuilder.wireNoArgImpl[T] - - def injected[T](overrides: (Symbol, _)*): T = macro WireBuilder.wireImpl[T] - - def injected[T](overrides: (String, _)*): T = macro WireBuilder.wireImpl[T] -} - -class WireBuilder { - def build[T: c.WeakTypeTag](c: blackbox.Context)(overrides: Seq[c.Tree]): c.Expr[T] = { - val validatedOverrides = overrides.map(o => extractProperty(c)(o)) - - validatedOverrides find (_.isLeft) match { - case Some(Left(errorMsg)) => error(c, errorMsg) - case _ => wireType(c)(Map(validatedOverrides collect { case Right(v) => v }: _*)) - } - } - - def extractPropertyName(c: blackbox.Context)(tree: c.Tree): String = { - import c.universe._ - - tree match { - case q"$symbolType.apply($symbol)" => - val Literal(Constant(name: String)) = symbol - name - case Literal(Constant(name: String)) => - name - } - } - - def extractProperty(c: blackbox.Context)(tree: c.Tree): Either[String, (String, c.Tree)] = { - import c.universe._ - - tree match { - // support for arrow syntax: 'prop -> inject [X] - case q"$arrowAssoc($lhs).->[$rhsType]($expr)" => - Right(extractPropertyName(c)(lhs) -> expr) - - // normal tuple syntax: ('prop, inject [X]) - case q"($lhs, $expr)" => - Right(extractPropertyName(c)(lhs) -> expr) - - case t => - Left( - s"Unsupported syntax for the overrides: `${c.universe.showCode(t)}`. Supported syntax is either tuple `('name, inject[X])` or arrow `'name -> inject [X]`." - ) - } - } - - def wireParam(c: blackbox.Context)( - param: c.Symbol, - wiredType: c.Type, - defaultSupported: Boolean, - validOverrides: Map[String, c.Tree] - ): Either[String, c.Tree] = { - import c.universe._ - - val name = param.name.decodedName.toString - val tpe = param.typeSignature - val hasDefault = param.asTerm.isParamWithDefault - - if (!defaultSupported && hasDefault) - Left(s"Argument $name has a default value, but default values are only supported for the first argument list.") - else - Right( - CrossNamedArg(c)( - Ident(TermName(name)), - validOverrides.getOrElse( - name, - if (hasDefault) q"injectWithConstructorDefault[$tpe, $wiredType]($name)" - else q"inject[$tpe]" - ) - ) - ) - } - - def wireParamList(c: blackbox.Context)( - paramList: List[c.Symbol], - wiredType: c.Type, - defaultSupported: Boolean, - validOverrides: Map[String, c.Tree] - ): List[Either[String, c.Tree]] = - paramList map (param => wireParam(c)(param, wiredType, defaultSupported, validOverrides)) - - def wireType[T: c.WeakTypeTag](c: blackbox.Context)(validOverrides: Map[String, c.Tree]): c.Expr[T] = { - import c.universe._ - - val tpe = implicitly[c.WeakTypeTag[T]].tpe - - tpe.members find (_.isConstructor) map (_.asMethod) match { - case None => - error(c, s"Type $tpe has no constructor.") - case Some(constructor) => - val availableNames = constructor.paramLists.flatten map (p => p.name.decodedName.toString) - val overriddenNames = validOverrides.keySet - val nonExistingNames = overriddenNames filterNot availableNames.contains - - if (nonExistingNames.nonEmpty) { - error( - c, - s"$tpe constructor does not have arguments: ${nonExistingNames mkString ", "}. Available arguments are: ${availableNames mkString ", "}" - ) - } else { - val paramLists = constructor.paramLists.zipWithIndex map { case (list, idx) => - wireParamList(c)(list, tpe, idx == 0, validOverrides) - } - - paramLists.flatten find (_.isLeft) match { - case Some(Left(errorMsg)) => - error(c, errorMsg) - case _ => - val wiredType = paramLists.foldLeft(Select(New(Ident(tpe.typeSymbol)), termNames.CONSTRUCTOR): c.Tree) { - case (acc, l) => Apply(acc, l collect { case Right(v) => v }) - } - -// c.info(c.enclosingPosition, "Wired: " + c.universe.show(wiredType), false) - c.Expr[T](wiredType) - } - } - } - } - - def error[T](c: blackbox.Context, message: String): c.Expr[T] = { - import c.universe._ - - c.error(c.enclosingPosition, message) - c.Expr[T](q"null") - } -} - -object WireBuilder { - def wireNoArgImpl[T: c.WeakTypeTag](c: blackbox.Context): c.Expr[T] = - wireImpl[T](c)() - - def wireImpl[T: c.WeakTypeTag](c: blackbox.Context)(overrides: c.Tree*): c.Expr[T] = - new WireBuilder().build[T](c)(overrides) -} diff --git a/src/main/scala/scaldi/package.scala b/src/main/scala/scaldi/package.scala deleted file mode 100644 index 0471c69..0000000 --- a/src/main/scala/scaldi/package.scala +++ /dev/null @@ -1,8 +0,0 @@ -/** Scaldi - is Scala dependency injection library. Basically Scala already have everything you need for dependency - * injection. But still some things can be made easier. Goal of the project is to provide more standard and easy way to - * make dependency injection in Scala projects consuming power of the Scala language. With Scaldi you can define your - * application modules in pure Scala without any annotations or XML. - * - * For more information see: [[http://scaldi.org]] - */ -package object scaldi {} diff --git a/src/main/scala/scaldi/util/ReflectionHelper.scala b/src/main/scala/scaldi/util/ReflectionHelper.scala deleted file mode 100644 index c46bcdd..0000000 --- a/src/main/scala/scaldi/util/ReflectionHelper.scala +++ /dev/null @@ -1,119 +0,0 @@ -package scaldi.util - -import java.lang.annotation.Annotation -import java.lang.reflect.{Constructor, Field, Method} -import scala.annotation.tailrec -import scala.language.{implicitConversions, postfixOps} -import scala.reflect.internal.{Names, StdNames} -import scala.reflect.runtime.universe.{runtimeMirror, MethodSymbol, Mirror, Symbol, TermName, TermSymbol, Type, TypeTag} -import scala.reflect.runtime.{universe, JavaUniverse} - -object ReflectionHelper { - def getDefaultValueOfParam[T, C](paramName: String)(implicit tt: TypeTag[C]): T = { - val tpe = tt.tpe - - tpe.members find (_.isConstructor) map (_.asMethod) match { - case None => - throw new IllegalArgumentException(s"Type $tpe has no constructor.") - case Some(constructor) => - constructor.paramLists.headOption.toList.flatten.zipWithIndex - .find(_._1.name.decodedName.toString == paramName) match { - case Some((param, idx)) if param.isTerm && param.asTerm.isParamWithDefault => - import universe._ - - val names = universe.asInstanceOf[StdNames with Names] - val name = names.nme.defaultGetterName(names.nme.CONSTRUCTOR, idx + 1).encodedName.toString - val reflection = mirror.reflect(mirror.reflectModule(tpe.typeSymbol.companion.asModule).instance) - - reflection.reflectMethod(tpe.companion.member(TermName(name)).asMethod).apply().asInstanceOf[T] - case _ => - throw new IllegalArgumentException( - s"Can't find constructor argument $paramName with default value. Note, that only the first argument list is supported." - ) - } - } - } - - def mirror: Mirror = { - val classLoader = - if (Thread.currentThread.getContextClassLoader != null) - Thread.currentThread.getContextClassLoader - else this.getClass.getClassLoader - - runtimeMirror(classLoader) - } - - def overrides(method: Symbol): Seq[Symbol] = { - val origPackage = getPackage(method) - method.overrides.filter(o => o.isPublic || o.isProtected || (!o.isPrivate && getPackage(o) == origPackage)) - } - - def classToType(clazz: Class[_]): Type = - mirror.classSymbol(clazz).toType - - @tailrec - private def getPackage(s: Symbol): Symbol = if (s.isPackage) s else getPackage(s.owner) - - def hasAnnotation[T <: Annotation: TypeTag](a: Annotation): Boolean = - hasAnnotation[T](classToType(a.getClass)) - - def hasAnnotation[T <: Annotation: TypeTag](t: Type): Boolean = { - val expectedTpe = implicitly[TypeTag[T]].tpe - t.baseClasses flatMap (_.annotations) exists (_.tree.tpe =:= expectedTpe) - } - - // Dirty tricks to compensate for scala reflection API missing feature or bugs - - private def undo[T](block: => T): T = - scala.reflect.runtime.universe match { - case ju: JavaUniverse => ju.undoLog.undo(block) - case _ => block - } - - // Workaround for https://issues.scala-lang.org/browse/SI-9177 - // TODO: get rid of this workaround as soon as https://issues.scala-lang.org/browse/SI-9177 is resolved! - // <:< memory leak explained in https://github.com/scala/bug/issues/8302 - /** Check assignability with additional undoLog memory leak check and avoid 'Illegal cyclic reference'. */ - def isAssignableFrom(a: Type, b: Type): Boolean = - try undo(b <:< a) - catch { - case e: Throwable if e.getMessage != null && e.getMessage.contains("illegal cyclic reference") => - false - } - - /** Dirty little trick to convert java constructor to scala constructor. (the reason for it is that scala reflection - * does not list private constructors) - */ - def constructorSymbol(c: Constructor[_]): MethodSymbol = { - val mirror = ReflectionHelper.mirror - val constructorConverter = - mirror.classSymbol(mirror.getClass).typeSignature.member(TermName("jconstrAsScala")).asMethod - - mirror.reflect(mirror: AnyRef).reflectMethod(constructorConverter).apply(c).asInstanceOf[MethodSymbol] - } - - /** Dirty little trick to convert get method argument annotations. (the reason for it is that scala reflection does - * not give this information) - */ - def methodParamsAnnotations(method: MethodSymbol): (List[Annotation], List[List[Annotation]]) = { - val mirror = ReflectionHelper.mirror - val methodToJava = mirror.classSymbol(mirror.getClass).typeSignature.member(TermName("methodToJava")).asMethod - val jmethod = mirror.reflect(mirror: AnyRef).reflectMethod(methodToJava).apply(method).asInstanceOf[Method] - - jmethod.getAnnotations.toList -> jmethod.getParameterAnnotations.toList.map(_.toList) - } - - def fieldAnnotations(field: TermSymbol): Seq[Annotation] = { - val mirror = ReflectionHelper.mirror - val fieldToJava = mirror.classSymbol(mirror.getClass).typeSignature.member(TermName("fieldToJava")).asMethod - val jfield = mirror.reflect(mirror: AnyRef).reflectMethod(fieldToJava).apply(field).asInstanceOf[Field] - - jfield.getAnnotations.toList - } - - implicit class SafelyAssignable(val t: Type) extends AnyVal { - - /** Alias for [[isAssignableFrom()]] */ - def safe_<:<(that: Type): Boolean = isAssignableFrom(that, t) - } -} diff --git a/src/main/scala/scaldi/util/Util.scala b/src/main/scala/scaldi/util/Util.scala deleted file mode 100644 index f01291c..0000000 --- a/src/main/scala/scaldi/util/Util.scala +++ /dev/null @@ -1,37 +0,0 @@ -package scaldi.util - -import language.implicitConversions - -object Util { - implicit class WorkflowHelper[T](val target: T) extends AnyVal { - def |>[R](fn: T => R): R = fn(target) - def <|(fn: T => Unit): T = { - fn(target) - target - } - } - - type Cache[K, V] = collection.mutable.Map[K, V] - - def createCache[K, V]: Cache[K, V] = new collection.mutable.HashMap[K, V]() - - implicit def toCacheUtils[K, V](cache: Cache[K, V]): CacheUtils[K, V] = new CacheUtils(cache) - - class CacheUtils[K, V](private val cache: Cache[K, V]) extends AnyVal { - def caching(key: K)(fn: => V): V = cache.synchronized { - cache.getOrElseUpdate(key, fn) - } - } - - def timed[R](metricsName: String)(fn: => R): R = { - val startTime = System.currentTimeMillis - val res = fn - val endTime = System.currentTimeMillis() - - println(metricsName + ": " + (endTime - startTime) + " ms") - - res - } - - def ntimed[R](times: Int, metricsName: String)(fn: => R): R = (1 to times).map(x => timed(metricsName)(fn)).last -} diff --git a/src/main/scala/scaldi/util/constraints/TypeConstraints.scala b/src/main/scala/scaldi/util/constraints/TypeConstraints.scala deleted file mode 100644 index b2f1cfe..0000000 --- a/src/main/scala/scaldi/util/constraints/TypeConstraints.scala +++ /dev/null @@ -1,67 +0,0 @@ -package scaldi.util.constraints - -import scala.annotation.implicitNotFound - -sealed trait Existence -trait Exists extends Existence -trait NotExists extends Existence - -trait IsTypeClassExists[TypeClass, Answer] - -object IsTypeClassExists extends LowPriorityIsTypeClassExists { - implicit def typeClassExistsEv[TypeClass, Answer](implicit a: TypeClass): IsTypeClassExists[TypeClass, Exists] = - evidence.asInstanceOf[IsTypeClassExists[TypeClass, Exists]] -} - -trait LowPriorityIsTypeClassExists { - protected val evidence: IsTypeClassExists[Any, Any] = - new Object with IsTypeClassExists[Any, Any] - - implicit def typeClassNotExistsEv[TypeClass, Answer]: IsTypeClassExists[TypeClass, NotExists] = - evidence.asInstanceOf[IsTypeClassExists[TypeClass, NotExists]] -} - -@implicitNotFound("Argument does not satisfy constraints: Not ${T}") -trait Not[T] - -object Not { - private val evidence: Not[Any] = new Object with Not[Any] - - implicit def notEv[T, Answer](implicit a: IsTypeClassExists[T, Answer], ne: Answer =:= NotExists): Not[T] = - evidence.asInstanceOf[Not[T]] -} - -@implicitNotFound("Argument does not satisfy constraints: ${A} And ${B}") -trait And[A, B] - -object And { - private val evidence: And[Any, Any] = new Object with And[Any, Any] - - implicit def bothExistEv[A, B](implicit a: A, b: B): And[A, B] = - evidence.asInstanceOf[And[A, B]] -} - -@implicitNotFound("Argument does not satisfy constraints: ${A} Or ${B}") -trait Or[A, B] { - def get: Either[A, B] -} - -object Or { - implicit def aExistsEv[A, B](implicit a: A): Or[A, B] = new Or[A, B] { - def get = Left(a) - } - - implicit def bExistsEv[A, B](implicit b: B): Or[A, B] = new Or[A, B] { - def get = Right(b) - } -} - -@implicitNotFound("Type inference was unable to figure out the type. You need to provide it explicitly.") -trait NotNothing[T] - -object NotNothing { - private val evidence: NotNothing[Any] = new Object with NotNothing[Any] - - implicit def notNothingEvidence[T](implicit n: T =:= T): NotNothing[T] = - evidence.asInstanceOf[NotNothing[T]] -} diff --git a/src/test/resources/application.conf b/src/test/resources/application.conf deleted file mode 100644 index 3e80fd4..0000000 --- a/src/test/resources/application.conf +++ /dev/null @@ -1,29 +0,0 @@ -numbersTest { - port = 123 - listOfNumbers = [5, 6, 7] - some { - doubles = [5.55, 6.76] - } -} - -bools { - enabled = true - mess = [true, false, false, true, false] -} - -other { - someFile = "/var/log/foo.log" - someFiles = ["/var/log/foo1.log", "/var/log/foo2.log"] - - timeout = 10 seconds - timeouts = [1000 millis, 2 seconds] - - boringString = "abc" - someStrings = ["a", "123", "f"] -} - -complexList = [{ - foo = "aa" -},{ - foo = "bb" -}] \ No newline at end of file diff --git a/src/test/scala/scaldi/ConditionSpec.scala b/src/test/scala/scaldi/ConditionSpec.scala deleted file mode 100644 index d139d3c..0000000 --- a/src/test/scala/scaldi/ConditionSpec.scala +++ /dev/null @@ -1,119 +0,0 @@ -package scaldi - -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class ConditionSpec extends AnyWordSpec with Matchers { - val C = Condition - - "Condition" should { - val onlyTest: PartialFunction[List[Identifier], Boolean] = { - case List(StringIdentifier("test")) => true - case _ => false - } - - "be sutisfied if underlying function returns true" in { - C(true) satisfies Nil should be(true) - C(onlyTest) satisfies List("test") should be(true) - } - - "not be sutisfied if underlying function returns false" in { - C(false) satisfies Nil should be(false) - C(onlyTest) satisfies List("wrong") should be(false) - } - - "be able to compose with 'and'" in { - C(true) and C(false) and C(true) satisfies Nil should be(false) - C(false) and C(false) satisfies Nil should be(false) - C(true) and C(true) satisfies Nil should be(true) - } - - "be able to compose with 'or'" in { - C(true) or C(false) or C(true) satisfies Nil should be(true) - C(true) or C(true) satisfies Nil should be(true) - C(false) or C(false) satisfies Nil should be(false) - } - - "suport unary not (!)" in { - !C(true) satisfies Nil should be(false) - C(false) or !C(false) satisfies Nil should be(true) - !C(false) and C(true) satisfies Nil should be(true) - } - - "be able to compose with 'or' and 'and', but precedence is regulated by parentheses" in { - C(true) or C(false) and C(false) satisfies Nil should be(false) - C(true) or (C(false) and C(false)) satisfies Nil should be(true) - } - } - - "SysPropCondition" should { - "check presence of system property if value is None" in { - try { - SysPropCondition("test-property") satisfies Nil should be(false) - System.setProperty("test-property", "") - SysPropCondition("test-property") satisfies Nil should be(true) - } finally System.clearProperty("test-property") - } - - "check value of system property if value is set" in { - try { - SysPropCondition("test-property", Some("test")) satisfies Nil should be(false) - System.setProperty("test-property", "") - SysPropCondition("test-property", Some("test")) satisfies Nil should be(false) - System.setProperty("test-property", "test") - SysPropCondition("test-property", Some("test")) satisfies Nil should be(true) - } finally System.clearProperty("test-property") - } - } - - "non-dynamic conditions" should { - "initialize of non-lazy bindings when true" in { - val cond = C(true, dynamic = false) - var initialized = false - - implicit val inj = new Module { - bind[String] when cond toNonLazy "foo" initWith (_ => initialized = true) - } - - inj.initNonLazy() - - initialized should be(true) - } - - "prevent initialization of non-lazy bindings when false" in { - val cond = C(false, dynamic = false) - var initialized = false - - implicit val inj = new Module { - bind[String] when cond toNonLazy "foo" initWith (_ => initialized = true) - } - - inj.initNonLazy() - - initialized should be(false) - } - - "compose" in { - val dynamic = C(true, dynamic = true) - val nonDynamic = C(true, dynamic = false) - - (dynamic and (!dynamic or !nonDynamic)).dynamic should be(true) - (nonDynamic and (!nonDynamic or !nonDynamic)).dynamic should be(false) - } - } - - "dynamic conditions" should { - "initialize of non-lazy bindings when false" in { - val cond = C(false, dynamic = true) - var initialized = false - - implicit val inj = new Module { - bind[String] when cond toNonLazy "foo" initWith (_ => initialized = true) - } - - inj.initNonLazy() - - initialized should be(true) - } - } -} diff --git a/src/test/scala/scaldi/IdentifierSpec.scala b/src/test/scala/scaldi/IdentifierSpec.scala deleted file mode 100644 index 04e1708..0000000 --- a/src/test/scala/scaldi/IdentifierSpec.scala +++ /dev/null @@ -1,54 +0,0 @@ -package scaldi - -import java.text.{DateFormat, SimpleDateFormat} -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class IdentifierSpec extends AnyWordSpec with Matchers { - private type Bar = List[Int] - - "Identifier" when { - "defaults are used" should { - "be converted from string" in { - getId("str") should equal(StringIdentifier("str")) - } - - "be converted from symbol" in { - getId(Symbol("sym")) should equal(StringIdentifier("sym")) - } - - "be converted from class" in { - getId(classOf[String]) should equal(TypeTagIdentifier.typeId[String]) - } - } - - "compared" should { - "not match for different identifier types" in { - getId(classOf[DateFormat]) sameAs getId("java.text.DateFormat") should be(false) - } - - "not match for different identifier values" in { - getId(Symbol("user")) sameAs getId("publisher") should be(false) - getId(classOf[DateFormat]) sameAs getId(classOf[String]) should be(false) - } - - "match for the same identifier types and values" in { - getId(Symbol("publisher")) sameAs getId("publisher") should be(true) - getId(classOf[String]) sameAs getId(classOf[String]) should be(true) - } - - "use polymorphism to compare classes" in { - getId(classOf[SimpleDateFormat]) sameAs getId(classOf[DateFormat]) should be(true) - getId(classOf[DateFormat]) sameAs getId(classOf[SimpleDateFormat]) should be(false) - } - - "treat type-aliases as their values" in { - getId(classOf[List[Int]]) should equal(getId(classOf[Bar])) - getId(classOf[Bar]) should equal(getId(classOf[List[Int]])) - getId(classOf[Bar]) should equal(getId(classOf[Bar])) - } - } - } - - def getId[T: CanBeIdentifier](target: T): Identifier = implicitly[CanBeIdentifier[T]].toIdentifier(target) -} diff --git a/src/test/scala/scaldi/InjectableSpec.scala b/src/test/scala/scaldi/InjectableSpec.scala deleted file mode 100644 index 1c202e4..0000000 --- a/src/test/scala/scaldi/InjectableSpec.scala +++ /dev/null @@ -1,183 +0,0 @@ -package scaldi - -import java.text.DateFormat -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class InjectableSpec extends AnyWordSpec with Matchers { - - "Injectable" should { - - "be useable within classes that are instantiated within module and have implicit injector" in { - val module = new TcpModule :: DynamicModule { m => - m.binding identifiedBy Symbol("tcpHost") to "test" - m.binding identifiedBy Symbol("welcome") to "Hello user!" - } - - val binding = module.getBinding(List(Symbol("tcpServer"))) - binding should be(Symbol("defined")) - - val server = binding.get.get.get.asInstanceOf[TcpServer] - server.port should equal(1234) - server.host should equal("test") - server.getConnection.welcomeMessage should equal("Hello user!") - } - - "treat binding that return None as non-defined and use default or throw an exception if no default provided" in { - val module = - new TcpModule :: DynamicModule(_.bind[String] identifiedBy Symbol("welcome") to None) :: DynamicModule { m => - m.binding identifiedBy Symbol("tcpHost") to "test" - m.binding identifiedBy Symbol("welcome") to "Hello user!" - } - - val binding = module.getBinding(List(Symbol("tcpServer"))) - binding should be(Symbol("defined")) - - val server = binding.get.get.get.asInstanceOf[TcpServer] - server.getConnection.welcomeMessage should equal("Hi") - } - - import scaldi.Injectable._ - val defaultDb = PostgresqlDatabase("default_db") - - "inject by type" in { - inject[Database] should equal(MysqlDatabase("my_app")) - inject[Database](classOf[ConnectionProvider]) should equal(MysqlDatabase("my_app")) - } - - "inject using identifiers" in { - val results = List( - inject[Database](Symbol("database") and Symbol("local")), - inject[Database](identified by Symbol("local") and Symbol("database")), - inject[Database](by default defaultDb and identified by Symbol("database") and Symbol("local")), - inject[Database](by default new MysqlDatabase("my_app") and Symbol("database") and Symbol("local")), - inject[Database](Symbol("database") and "local" and by default defaultDb) - ) - - results should have size 5 - results.distinct should (contain(MysqlDatabase("my_app"): Database) and have size 1) - } - - "inject default if binding not found" in { - val results = List[Database]( - inject[Database](identified by Symbol("remote") and by default new PostgresqlDatabase("default_db")), - inject[Database](identified by Symbol("remote") is by default defaultDb), - inject[Database](Symbol("remote") is by default defaultDb), - inject[Database](Symbol("remote") which by default defaultDb), - inject[Database](Symbol("remote") that by default defaultDb), - inject[Database](by default defaultDb and identified by Symbol("remote")), - inject(by default defaultDb), - inject(by default defaultDb and Symbol("local")), - inject(by default new PostgresqlDatabase("default_db")) - ) - - results should have size 9 - results.distinct should (contain(defaultDb: Database) and have size 1) - } - - "correctly inject provider" in { - var str1Counter = 0 - var str2Counter = 0 - - implicit val injector = DynamicModule { m => - m.binding identifiedBy Symbol("str1") to { - str1Counter = str1Counter + 1 - s"str1 $str1Counter" - } - - m.binding identifiedBy Symbol("str2") toProvider { - str2Counter = str2Counter + 1 - s"str2 $str2Counter" - } - } - - val str1 = injectProvider[String](Symbol("str1")) - val str2 = injectProvider[String](Symbol("str2")) - - str1() should equal("str1 1") - str1() should equal("str1 1") - - str2() should equal("str2 1") - str2() should equal("str2 2") - - str1Counter should equal(1) - str2Counter should equal(2) - } - - "throw exception if no default provided and bonding not found" in { - an[InjectException] should be thrownBy inject[DateFormat] - } - - "also be available in module, but use resulting (compised) injector" in { - val server = inject[Server](Symbol("real") and Symbol("http")) - server should equal(HttpServer("marketing.org", 8081)) - } - - "distinguish generic types" in { - val intAdder = inject[(Int, Int) => Int] - intAdder(2, 3) should equal(5) - - val stringAdder = inject[(String, String) => String] - stringAdder("Hello", "World") should equal("Hello, World") - } - - "inject all using type parameter" in { - injectAllOfType[String](Symbol("host")) should - (contain("www.google.com") and contain("www.yahoo.com") and contain("www.github.com") and have size 3) - - injectAllOfType[HttpServer] should - (contain(HttpServer("localhost", 80)) and contain(HttpServer("test", 8080)) and have size 2) - } - - "inject all without type parameter" in { - injectAll(Symbol("host")).asInstanceOf[List[String]] should - (contain("www.google.com") and contain("www.yahoo.com") and contain("www.github.com") and have size 3) - - injectAll(Symbol("server")).asInstanceOf[List[HttpServer]] should - (contain(HttpServer("localhost", 80)) and contain(HttpServer("test", 8080)) and have size 2) - } - - "inject none if a binding is not found or ambiguous" in { - injectOpt[Injector] should equal(None) - injectOpt[String] should equal(None) - } - - "inject some values identified by names" in { - injectOpt[String](Symbol("httpHost")) should equal(Some("marketing.org")) - injectOpt[String](Symbol("host") and Symbol("github")) should equal(Some("www.github.com")) - injectOpt[Database] should be(Symbol("defined")) - } - - "inject optional default values" in { - injectOpt[String](Symbol("nonSpecified") is by default "default value") should equal(Some("default value")) - } - } - - implicit lazy val injector: Injector = mainModule :: marketingModule - - val marketingModule = new Module { - bind[String] identifiedBy Symbol("httpHost") to "marketing.org" - } - - val mainModule = new Module { - binding identifiedBy Symbol("host") and Symbol("google") to "www.google.com" - binding identifiedBy Symbol("host") and Symbol("yahoo") to "www.yahoo.com" - binding identifiedBy Symbol("host") and Symbol("github") to "www.github.com" - - binding identifiedBy Symbol("server") to HttpServer("localhost", 80) - binding identifiedBy Symbol("server") to None - binding identifiedBy Symbol("server") to HttpServer("test", 8080) - - binding identifiedBy Symbol("intAdder") to ((a: Int, b: Int) => a + b) - binding identifiedBy Symbol("stringAdder") to ((s1: String, s2: String) => s1 + ", " + s2) - - bind[Int] identifiedBy Symbol("httpPort") to 8081 - - bind[Server] identifiedBy Symbol("real") and Symbol("http") to HttpServer( - inject[String](Symbol("httpHost")), - inject[Int](Symbol("httpPort")) - ) - - binding identifiedBy Symbol("database") and "local" to MysqlDatabase("my_app") - } -} diff --git a/src/test/scala/scaldi/InjectedMacroSpec.scala b/src/test/scala/scaldi/InjectedMacroSpec.scala deleted file mode 100644 index a17ea49..0000000 --- a/src/test/scala/scaldi/InjectedMacroSpec.scala +++ /dev/null @@ -1,93 +0,0 @@ -package scaldi - -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec -import scaldi.Injectable.inject - -class InjectedMacroSpec extends AnyWordSpec with Matchers { - "`injected` macro" should { - "support basic injection" in { - implicit val inj = new Module { - bind[DepSimple] to injected[DepSimple] - - binding to "Test" - bind[Server] to new HttpServer("localhost", 80) - } - - inject[DepSimple] should equal(new DepSimple("Test", new HttpServer("localhost", 80))) - } - - "support multiple argument lists" in { - implicit val inj = new Module { - bind[DepMultiArgList] to injected[DepMultiArgList] - - binding to "Test" - bind[Server] to new HttpServer("localhost", 80) - bind[Long] to 100L - bind[List[Int]] to List(1, 2, 3) - } - - inject[DepMultiArgList] should equal( - new DepMultiArgList("Test", new HttpServer("localhost", 80))(100L)(100L, List(1, 2, 3)) - ) - } - - "support default arguments in the first argument list" in { - implicit val inj = new Module { - bind[DepWithDefaults] to injected[DepWithDefaults] - - bind[Server] to new HttpServer("localhost", 80) - } - - inject[DepWithDefaults] should equal(new DepWithDefaults(d2 = new HttpServer("localhost", 80))) - } - - "support overrides" in { - implicit val inj = new Module { - bind[DepWithDefaults] to injected[DepWithDefaults]( - Symbol("d1") -> Dep1("Override"), - Symbol("d3") -> Dep2("Another override") - ) - - bind[Server] to new HttpServer("localhost", 80) - binding to Dep1("Defined in module") - } - - inject[DepWithDefaults] should equal( - new DepWithDefaults(Dep1("Override"), new HttpServer("localhost", 80), Dep2("Another override")) - ) - } - - "inject implicit injector" in { - implicit val inj = new ImplicitArgumentsModule - - inject[ImplicitArguments] should equal(new ImplicitArguments(dep1 = Dep1("foo"), Dep2("foo"), Dep3("foo"))) - } - } -} - -class ImplicitArgumentsModule extends Module { - bind to injected[ImplicitArguments](Symbol("dep1") -> inject[Dep1](identified by Symbol("foo"))) - - bind[Dep1] identifiedBy Symbol("foo") to Dep1("foo") - bind[Dep1] identifiedBy Symbol("bar") to Dep1("bar") - - binding to Dep2("foo") - binding to Dep3("foo") -} - -case class ImplicitArguments(dep1: Dep1, dep2: Dep2, dep3: Dep3)(implicit inj: Injector) - -class DepSimple(a: String, s: Server) extends Debug(Symbol("a") -> a, Symbol("s") -> s) -class DepWithDefaults(d1: Dep1 = Dep1("Default Value"), d2: Server, d3: Dep2 = Dep2("123")) - extends Debug(Symbol("d1") -> d1, Symbol("d2") -> d2, Symbol("d3") -> d3) -class DepMultiArgList(a: String, s: Server)(l: Long)(l1: Long, c: List[Int]) - extends Debug(Symbol("a") -> a, Symbol("s") -> s, Symbol("l") -> l, Symbol("l1") -> l1, Symbol("c") -> c) - -class Debug(val props: (Symbol, Any)*) { - // hashCode is not overridden because I will use only equals in the test - override def equals(obj: scala.Any): Boolean = - obj.getClass == this.getClass && obj.asInstanceOf[Debug].props == this.props - - override def toString: String = props.toString() -} diff --git a/src/test/scala/scaldi/InjectorSpec.scala b/src/test/scala/scaldi/InjectorSpec.scala deleted file mode 100644 index e7775a8..0000000 --- a/src/test/scala/scaldi/InjectorSpec.scala +++ /dev/null @@ -1,170 +0,0 @@ -package scaldi - -import language.postfixOps - -import java.util.Properties -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class InjectorSpec extends AnyWordSpec with Matchers { - "Injector composition" should { - "produce real injector when composed with NilInjector or produce NilInjector when both of them are NilInjectors" in { - val realModule = new Test2Module - - NilInjector :: NilInjector should be theSameInstanceAs NilInjector - realModule :: NilInjector should be theSameInstanceAs realModule - NilInjector :: realModule should be theSameInstanceAs realModule - } - - "produce mutable aggregation if at least one of the injectors is mutable" in { - val mutable = new Test2Module - val immutable = ImmutableWrapper(DynamicModule(_ => ())) - - (mutable ++ mutable).getClass should equal(classOf[MutableInjectorAggregation]) - (mutable ++ immutable).getClass should equal(classOf[MutableInjectorAggregation]) - (immutable ++ mutable).getClass should equal(classOf[MutableInjectorAggregation]) - - ((if (true) immutable else NilInjector) :: immutable).getClass should equal(classOf[ImmutableInjectorAggregation]) - ((if (false) immutable else NilInjector) :: immutable).getClass should equal( - classOf[ImmutableInjectorAggregation] - ) - ((if (false) mutable else NilInjector) :: immutable).getClass should equal(classOf[MutableInjectorAggregation]) - } - - "produce Immutable aggreagation if both injectors are not mutable" in { - val immutable = ImmutableWrapper(DynamicModule(_ => ())) - - (immutable ++ immutable).getClass should equal(classOf[ImmutableInjectorAggregation]) - } - - "compose injectors so, that injectors that come first should override bindings of later injectors" in { - import scaldi.Injectable._ - - { - implicit val injector = new Test2Module ++ new Test1Module ++ new AppModule - inject[Server] should equal(HttpServer("test2", 8080)) - } - - { - implicit val injector = new Test2Module :: new Test1Module :: new AppModule - inject[Server] should equal(HttpServer("test2", 8080)) - } - } - } - - "StaticModule" should { - "provide implicit injector and be Injectable" in { - implicit val module = new StaticModule { - lazy val server = new TcpServer - lazy val otherServer = HttpServer(inject[String]("httpHost"), inject[Int](Symbol("httpPort"))) - - val tcpHost = "tcp-test" - val tcpPort = 1234 - - val httpHost = "localhost" - val httpPort = 4321 - } - - val server = Injectable.inject[TcpServer] - - server.host should equal("tcp-test") - server.port should equal(1234) - server.getConnection.welcomeMessage should equal("Hi") - - Injectable.inject[HttpServer] should equal(HttpServer("localhost", 4321)) - } - } - - "DynamicModule" should { - "provide implicit injector and be Injectable" in { - implicit val module = new DynamicModule { - binding to new TcpServer - binding to HttpServer(inject[String]("httpHost"), inject[Int](Symbol("httpPort"))) - - bind[String] as Symbol("tcpHost") to "tcp-test" - bind[Int] as Symbol("tcpPort") to 1234 - - binding identifiedBy Symbol("httpHost") to "localhost" - binding identifiedBy Symbol("httpPort") to 4321 - } - - val server = Injectable.inject[TcpServer] - - server.host should equal("tcp-test") - server.port should equal(1234) - server.getConnection.welcomeMessage should equal("Hi") - - Injectable.inject[HttpServer] should equal(HttpServer("localhost", 4321)) - } - } - - "RawInjector" should { - "convert simple types" in { - import scala.concurrent.duration._ - import java.io.File - val injector = new RawInjector { - override def getRawValue(name: String): Option[String] = Some(name) - } - def blindlyGetBindingFor[T: scala.reflect.runtime.universe.TypeTag](value: String): T = { - val mbBinding = injector.getBinding(List(TypeTagIdentifier.typeId[T], StringIdentifier(value))) - mbBinding shouldNot be(None) - val mbVal = mbBinding.get.get - mbVal shouldNot be(None) - mbVal.get.asInstanceOf[T] - } - blindlyGetBindingFor[Int]("-1") should be(-1) - blindlyGetBindingFor[Long]("987654321") should be(987654321L) - blindlyGetBindingFor[Duration]("10 seconds") should be(10 seconds) - blindlyGetBindingFor[File](".") should equal(new File(".")) - } - } - - "SystemPropertiesInjector" should { - "look for simple bindings in system properties and convert them to required type" in { - implicit val injector = SystemPropertiesInjector :: new AppModule - import scaldi.Injectable._ - - try { - System.setProperty("host", "test-sys") - System.setProperty("port", "12345") - - inject[Server] should equal(HttpServer("test-sys", 12345)) - } finally { - System.setProperty("host", "") - System.setProperty("port", "") - } - } - } - - "PropertiesInjector" should { - "look for simple bindings in system properties and convert them to required type" in { - val props = new Properties() - - props.setProperty("host", "test-prop") - props.setProperty("port", "54321") - - implicit val injector = PropertiesInjector(props) :: new AppModule - import Injectable._ - - inject[Server] should equal(HttpServer("test-prop", 54321)) - - inject[Integer](Symbol("port")) should equal(Integer.valueOf(54321)) - } - } - - class AppModule extends Module { - bind[Server] to HttpServer(inject[String](Symbol("host")), inject[Int](Symbol("port"))) - - binding identifiedBy Symbol("host") to "localhost" - binding identifiedBy Symbol("port") to 80 - } - - class Test1Module extends Module { - binding identifiedBy Symbol("host") to "test" - } - - class Test2Module extends Module { - binding identifiedBy Symbol("host") to "test2" - binding identifiedBy Symbol("port") to 8080 - } -} diff --git a/src/test/scala/scaldi/LifecycleSpec.scala b/src/test/scala/scaldi/LifecycleSpec.scala deleted file mode 100644 index 0dabf48..0000000 --- a/src/test/scala/scaldi/LifecycleSpec.scala +++ /dev/null @@ -1,104 +0,0 @@ -package scaldi - -import java.util.concurrent.atomic.AtomicInteger - -import scaldi.util.JvmTestUtil -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class LifecycleSpec extends AnyWordSpec with Matchers { - - "BindingLifecycle" should { - "allow to define init function which should be called one time for lazy and non-lazy bindings" in { - val module1 = new Module { - bind[Server] as Symbol("serverLazy") to new LifecycleServer initWith (_.init()) - } - - val module2 = new Module { - bind[Server] as Symbol("serverNonLazy") toNonLazy new LifecycleServer initWith (_.init()) - } - - implicit val moduleAggregation = module1 :: module2 - - import Injectable._ - - (1 to 20) foreach { _ => - inject[Server](Symbol("serverLazy")) - inject[Server](Symbol("serverNonLazy")) - } - - inject[Server](Symbol("serverLazy")).asInstanceOf[LifecycleServer].initializedCount should equal(1) - inject[Server](Symbol("serverNonLazy")).asInstanceOf[LifecycleServer].initializedCount should equal(1) - } - - "allow to define init function for provider bindings which should be called one time for each created object" in { - var instanceCount = 0 - - implicit val module = new Module { - bind[Server] as Symbol("server") toProvider { - instanceCount = instanceCount + 1; new LifecycleServer - } initWith (_.init()) - } - - import Injectable._ - - val instances = (1 to 20).toList map (_ => inject[Server](Symbol("server"))) - - instanceCount should be(20) - instances foreach (_.asInstanceOf[LifecycleServer].initializedCount should equal(1)) - } - - "allow to define destroy function which should be called one time for every created instance" in { - val module1 = new Module { - bind[Server] as Symbol("serverLazy") to new LifecycleServer destroyWith (_.terminate()) - } - - val module2 = new Module { - bind[Server] as Symbol("serverNonLazy") toNonLazy new LifecycleServer destroyWith (_.terminate()) - bind[Server] as Symbol("serverProvider") toProvider new LifecycleServer destroyWith (_.terminate()) - } - - implicit val moduleAggregation = module1 :: module2 - - import Injectable._ - - val serverLazy = inject[Server](Symbol("serverLazy")) - val serverNonLazy = inject[Server](Symbol("serverNonLazy")) - val serverProvider = inject[Server](Symbol("serverProvider")) - - 1 to 20 foreach (_ => moduleAggregation.destroy()) - - serverLazy.asInstanceOf[LifecycleServer].destroyedCount should equal(1) - serverNonLazy.asInstanceOf[LifecycleServer].destroyedCount should equal(1) - serverProvider.asInstanceOf[LifecycleServer].destroyedCount should equal(1) - } - } - - "ShutdownHookLifecycleManager" should { - "not allow to add destroyable after it was already destroyed" in { - val initialShutdownHookCount = JvmTestUtil.shutdownHookCount - - implicit val module = new Module { - bind[Server] as Symbol("server") to new LifecycleServer initWith (_.init()) destroyWith (_.terminate()) - } - - import Injectable._ - - inject[Server](Symbol("server")).asInstanceOf[LifecycleServer].initializedCount should be(1) - - val destroyedCount = new AtomicInteger(0) - - module.addDestroyable(() => destroyedCount.incrementAndGet()) - - JvmTestUtil.shutdownHookCount should be(initialShutdownHookCount + 1) - - module.destroy() - - destroyedCount.get should be(1) - JvmTestUtil.shutdownHookCount should be(initialShutdownHookCount) - - an[IllegalStateException] should be thrownBy - module.addDestroyable(() => destroyedCount.incrementAndGet()) - } - } -} diff --git a/src/test/scala/scaldi/ReflectionBinderSpec.scala b/src/test/scala/scaldi/ReflectionBinderSpec.scala deleted file mode 100644 index f3bbf17..0000000 --- a/src/test/scala/scaldi/ReflectionBinderSpec.scala +++ /dev/null @@ -1,98 +0,0 @@ -package scaldi - -import scala.util.Random -import java.lang.reflect.Method -import scala.reflect.runtime.universe.{typeTag, Type, TypeTag} -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class ReflectionBinderSpec extends AnyWordSpec with Matchers { - "ReflectionBinder" should { - "discover bindings using reflection" in { - val binder = new StaticModule { - lazy val server = new HttpServer("localhost", 80) - } - - binder.getBinding(List("server", classOf[HttpServer])) should be(Symbol("defined")) - } - - "infer correct type and string identifier taken from member name" in { - val binder = new StaticModule { - def myHttpServer: Server = new HttpServer("localhost", 80) - def otherServer = new HttpServer("test", 8080) - } - - binder.getBinding(List("myHttpServer", classOf[Server])).get.get should equal(Some(HttpServer("localhost", 80))) - binder.getBinding(List("myHttpServer", classOf[HttpServer])) should be(Symbol("empty")) - - binder.getBinding(List("otherServer", classOf[Server])).get.get should equal(Some(HttpServer("test", 8080))) - binder.getBinding(List("otherServer", classOf[HttpServer])).get.get should equal(Some(HttpServer("test", 8080))) - } - - "support BindingProvider as return type of class members and use it to retrieve actual binding" in { - val binder = new StaticModule { - lazy val someBinding = SpecialBindingProvider(() => HttpServer("test", 8080)) - } - - binder.getBinding(List("someBinding")) should be(Symbol("empty")) - binder.getBinding(List(classOf[BindingProvider])) should be(Symbol("empty")) - binder.getBinding(List(classOf[Server])).get.get should equal(Some(HttpServer("test", 8080))) - binder.getBinding(List("special")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "discover lazy vals that have semantics of lazy bindings" in { - var instanceCount = 0 - val binder = new StaticModule { - lazy val server = { - instanceCount += 1 - HttpServer("localhost", Random.nextInt()) - } - - lazy val otherServer = HttpServer("test", 8080) - } - - instanceCount should be(0) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 1 - instanceCount should be(1) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "discover normal vals that have semantics of non-lazy bindings and instntiated immediately" in { - var instanceCount = 0 - val binder = new StaticModule { - val server = { - instanceCount += 1 - new HttpServer("localhost", Random.nextInt()) - } - - val otherServer = HttpServer("test", 8080) - } - - instanceCount should be(1) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 1 - instanceCount should be(1) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "discover defs that have semantics of provider bindings" in { - var instanceCount = 0 - val binder = new StaticModule { - def server = { - instanceCount += 1 - new HttpServer("localhost", Random.nextInt()) - } - - def otherServer = HttpServer("test", 8080) - } - - instanceCount should be(0) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 10 - instanceCount should be(10) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - } -} - -case class SpecialBindingProvider[T: TypeTag](fn: () => T) extends BindingProvider { - def getBinding(name: String, tpe: Type): SimpleBinding[Any] = SimpleBinding(Some(fn), List(typeTag[T], "special")) -} diff --git a/src/test/scala/scaldi/TypesafeConfigInjectorSpec.scala b/src/test/scala/scaldi/TypesafeConfigInjectorSpec.scala deleted file mode 100644 index 292ade6..0000000 --- a/src/test/scala/scaldi/TypesafeConfigInjectorSpec.scala +++ /dev/null @@ -1,91 +0,0 @@ -package scaldi - -import Injectable._ -import java.io.File -import scala.concurrent.duration.Duration -import java.util.concurrent.TimeUnit -import com.typesafe.config.{Config, ConfigList, ConfigObject, ConfigValue} -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -/** @author - * Oleg Ilyenko - */ -class TypesafeConfigInjectorSpec extends AnyWordSpec with Matchers { - "TypesafeConfigInjector" should { - implicit val inj = TypesafeConfigInjector() - - "inject numbers" in { - inject[Int]("numbersTest.port") should equal(123) - inject[Long]("numbersTest.port") should equal(123L) - inject[List[Int]]("numbersTest.listOfNumbers") should equal(List(5, 6, 7)) - inject[List[Double]]("numbersTest.some.doubles") should equal(List(5.55, 6.76)) - } - - "inject bools" in { - inject[Boolean]("bools.enabled") should equal(true) - inject[List[Boolean]]("bools.mess") should equal(List(true, false, false, true, false)) - } - - "inject files" in { - inject[File]("other.someFile") should equal(new File("/var/log/foo.log")) - inject[List[File]]("other.someFiles") should equal( - List(new File("/var/log/foo1.log"), new File("/var/log/foo2.log")) - ) - } - - "inject durations" in { - inject[Duration]("other.timeout") should equal(Duration(10, TimeUnit.SECONDS)) - inject[List[Duration]]("other.timeouts") should equal( - List(Duration(1, TimeUnit.SECONDS), Duration(2000, TimeUnit.MILLISECONDS)) - ) - } - - "inject strings" in { - inject[String]("other.boringString") should equal("abc") - inject[List[String]]("other.someStrings") should equal(List("a", "123", "f")) - } - - "inject config" in { - val config = inject[Config]("numbersTest") - - config.getInt("port") should equal(123) - } - - "inject config lists" in { - val configs = inject[List[Config]]("complexList") - - configs should have size 2 - - configs(0).getString("foo") should equal("aa") - configs(1).getString("foo") should equal("bb") - } - - "inject config value" in { - inject[ConfigValue]("numbersTest.port").render should equal("123") - } - - "inject ConfigList" in { - val list = inject[ConfigList]("numbersTest.listOfNumbers") - - list should have size 3 - - list.get(0).render should equal("5") - list.get(1).render should equal("6") - list.get(2).render should equal("7") - } - - "inject config object" in { - inject[ConfigObject]("bools").toConfig.getBoolean("enabled") should equal(true) - } - - "inject config object list" in { - val list = inject[List[ConfigObject]]("complexList") - - list should have size 2 - - list(0).toConfig.getString("foo") should equal("aa") - list(1).toConfig.getString("foo") should equal("bb") - } - } -} diff --git a/src/test/scala/scaldi/WordBinderSpec.scala b/src/test/scala/scaldi/WordBinderSpec.scala deleted file mode 100644 index 9f6bf52..0000000 --- a/src/test/scala/scaldi/WordBinderSpec.scala +++ /dev/null @@ -1,224 +0,0 @@ -package scaldi - -import scala.util.Random -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpec - -class WordBinderSpec extends AnyWordSpec with Matchers { - "WordBinder" should { - "require to bind something" in { - val binder = new WordBinder { - - bind[String] identifiedBy Symbol("host") - - override def injector = ??? - } - - an[BindingException] should be thrownBy binder.wordBindings - } - - "collect all identifiers for bindings" in { - val binder = new WordBinder { - bind[String] identifiedBy Symbol("host") and "httpServer" to "localhost" - bind[String] as Symbol("host") and "httpServer" to "localhost" - binding identifiedBy classOf[String] and Symbol("host") and "httpServer" to "localhost" - bind[String] to "localhost" identifiedBy Symbol("host") and "httpServer" - bind[String] to "localhost" as Symbol("host") and "httpServer" - binding to "localhost" identifiedBy classOf[String] and Symbol("host") and "httpServer" - - override def injector = ??? - } - - binder.wordBindings should have size 7 - binder.wordBindings filter (_.isDefinedFor(List(classOf[String], "host", "httpServer"))) should have size 6 - } - - "infer binding type only when it's not specified" in { - val binder = new WordBinder { - binding to new HttpServer("localhost", 80) - - override def injector = ??? - } - - binder.wordBindings should have size 2 - binder.wordBindings(1) isDefinedFor List(classOf[Server]) should be(true) - binder.wordBindings(1) isDefinedFor List(classOf[HttpServer]) should be(true) - } - - "not infer binding type only when it is specified explicitly" in { - val binder = new WordBinder { - bind[Server] to new HttpServer("localhost", 80) - - override def injector = ??? - } - - binder.wordBindings should have size 2 - binder.wordBindings(1) isDefinedFor List(classOf[Server]) should be(true) - binder.wordBindings(1) isDefinedFor List(classOf[HttpServer]) should be(false) - } - - "treat later bindings as overrides for earlier and more that one binding od the same type" in { - val binder = new DynamicModule { - bind[Server] to new HttpServer("localhost", 80) - bind[Server] to new HttpServer("www.test.com", 8080) - }.initNonLazy() - - binder.wordBindings should have size 3 - binder.getBinding(List(classOf[Server])).get.get should equal(Some(HttpServer("www.test.com", 8080))) - - val bindings = binder.getBindings(List(classOf[Server])) - bindings should have size 2 - bindings(0).get should equal(Some(HttpServer("www.test.com", 8080))) - bindings(1).get should equal(Some(HttpServer("localhost", 80))) - } - - "allow to define normal lazy bindings that would be instantiated only one time" in { - var instanceCount = 0 - val binder = new DynamicModule { - bind[Server] identifiedBy Symbol("server") and "httpServer" to { - instanceCount += 1 - new HttpServer("localhost", Random.nextInt()) - } - - bind[Server] identifiedBy Symbol("otherServer") to HttpServer("test", 8080) - }.initNonLazy() - - instanceCount should be(0) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 1 - instanceCount should be(1) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "allow to define normal non-lazy bindings that would be instantiated only one time" in { - var instanceCount = 0 - val binder = new DynamicModule { - bind[Server] identifiedBy Symbol("server") and "httpServer" toNonLazy { - instanceCount += 1 - new HttpServer("localhost", Random.nextInt()) - } - - bind[Server] identifiedBy Symbol("otherServer") toNonLazy HttpServer("test", 8080) - }.initNonLazy() - - instanceCount should be(1) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 1 - instanceCount should be(1) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "allow to define provider bindings that would be instantiated each time" in { - var instanceCount = 0 - val binder = new DynamicModule { - bind[Server] identifiedBy Symbol("server") and "httpServer" toProvider { - instanceCount += 1 - new HttpServer("localhost", Random.nextInt()) - } - - bind[Server] identifiedBy Symbol("otherServer") toProvider HttpServer("test", 8080) - }.initNonLazy() - - instanceCount should be(0) - (1 to 10).map(x => binder.getBinding(List("server")).get.get).distinct should have size 10 - instanceCount should be(10) - binder.getBinding(List("otherServer")).get.get should equal(Some(HttpServer("test", 8080))) - } - - "support conditions with 'when'" in { - var prodMode = true - var specialMode = true - - val binder = new DynamicModule { - val ProdMode = Condition(prodMode) - val SpecialMode = Condition(specialMode) - val DevMode = !ProdMode - - bind[String] as Symbol("host") when ProdMode to "www.prod-server.com" - bind[String] as Symbol("host") when DevMode to "localhost" - - bind[Int] as Symbol("id") when ProdMode when SpecialMode to 123 - - bind[Int] when ProdMode as Symbol("port") to 1234 - - when(DevMode) { - bind[String] as Symbol("userName") to "testUser" - bind[Long] as Symbol("timeout") to 1000L - - bind[String] when SpecialMode as Symbol("path") to "/index.html" - - when(SpecialMode) { - bind[String] as Symbol("password") to "secret" - } - - bind[Boolean] as Symbol("rememberUserName") to false - } - } - - binder.wordBindings should have size 10 - - binder.getBinding(List(Symbol("host"))).get.get.get should equal("www.prod-server.com") - binder.getBinding(List(Symbol("port"))).get.get.get should equal(1234) - binder.getBinding(List(Symbol("userName"))) should be(empty) - binder.getBinding(List(Symbol("timeout"))) should be(empty) - binder.getBinding(List(Symbol("path"))) should be(empty) - binder.getBinding(List(Symbol("password"))) should be(empty) - binder.getBinding(List(Symbol("id"))).get.get.get should equal(123) - binder.getBinding(List(Symbol("rememberUserName"))) should be(empty) - - specialMode = false - prodMode = false - - binder.getBinding(List(Symbol("host"))).get.get.get should equal("localhost") - binder.getBinding(List(Symbol("port"))) should be(empty) - binder.getBinding(List(Symbol("userName"))).get.get.get should equal("testUser") - binder.getBinding(List(Symbol("timeout"))).get.get.get should be(1000L) - binder.getBinding(List(Symbol("path"))) should be(empty) - binder.getBinding(List(Symbol("password"))) should be(empty) - binder.getBinding(List(Symbol("id"))) should be(empty) - binder.getBinding(List(Symbol("rememberUserName"))).get.get.get should equal(false) - - specialMode = true - - binder.getBinding(List(Symbol("path"))).get.get.get should equal("/index.html") - binder.getBinding(List(Symbol("password"))).get.get.get should be("secret") - binder.getBinding(List(Symbol("id"))) should be(empty) - } - - "allow to define init and destroy functions" in { - implicit val module = new DynamicModule { - bind[Server] as Symbol("server1") to new LifecycleServer initWith (_.init()) destroyWith (_.terminate()) - bind[Server] as Symbol("server2") to new LifecycleServer initWith (_.init()) - bind[Server] as Symbol("server3") to new LifecycleServer destroyWith (_.terminate()) - } - - import Injectable._ - - (1 to 3) foreach (i => inject[Server](s"server$i")) - - val server1 = inject[Server](Symbol("server1")).asInstanceOf[LifecycleServer] - val server2 = inject[Server](Symbol("server2")).asInstanceOf[LifecycleServer] - val server3 = inject[Server](Symbol("server3")).asInstanceOf[LifecycleServer] - - server1.initializedCount should equal(1) - server1.destroyedCount should equal(0) - - server2.initializedCount should equal(1) - server2.destroyedCount should equal(0) - - server3.initializedCount should equal(0) - server3.destroyedCount should equal(0) - - module.destroy() - module.destroy() - module.destroy() - - server1.initializedCount should equal(1) - server1.destroyedCount should equal(1) - - server2.initializedCount should equal(1) - server2.destroyedCount should equal(0) - - server3.initializedCount should equal(0) - server3.destroyedCount should equal(1) - } - } -} diff --git a/src/test/scala/scaldi/testData.scala b/src/test/scala/scaldi/testData.scala deleted file mode 100644 index eb0b87e..0000000 --- a/src/test/scala/scaldi/testData.scala +++ /dev/null @@ -1,40 +0,0 @@ -package scaldi - -trait Server -case class HttpServer(host: String, port: Int) extends Server -class LifecycleServer extends Server { - var initializedCount = 0 - var destroyedCount = 0 - - def init() = - initializedCount = initializedCount + 1 - - def terminate() = - destroyedCount = destroyedCount + 1 -} - -trait Database -trait ConnectionProvider -case class MysqlDatabase(name: String) extends Database with ConnectionProvider -case class PostgresqlDatabase(name: String) extends Database with ConnectionProvider - -class TcpModule extends Module { - binding identifiedBy Symbol("tcpServer") to new TcpServer -} - -class TcpServer(implicit inj: Injector) extends Server with Injectable { - val port = inject[Int](Symbol("tcpPort") is by default 1234) - val host = inject[String](Symbol("tcpHost")) - - def getConnection = new TcpConnection -} - -import scaldi.Injectable._ - -class TcpConnection(implicit inj: Injector) { - val welcomeMessage = inject[String](Symbol("welcome") is by default "Hi") -} - -case class Dep1(name: String) -case class Dep2(name: String) -case class Dep3(name: String) diff --git a/src/test/scala/scaldi/util/JvmTestUtil.scala b/src/test/scala/scaldi/util/JvmTestUtil.scala deleted file mode 100644 index a3146d2..0000000 --- a/src/test/scala/scaldi/util/JvmTestUtil.scala +++ /dev/null @@ -1,13 +0,0 @@ -package scaldi.util - -object JvmTestUtil { - - // It is not pretty at all, but if you know better way to get JVM shutdown hook count, I would be happy to use it :) - def shutdownHookCount: Int = { - val hooksField = Class.forName("java.lang.ApplicationShutdownHooks").getDeclaredField("hooks") - - if (!hooksField.isAccessible) hooksField.setAccessible(true) - - hooksField.get(null).asInstanceOf[java.util.Map[_, _]].size - } -}