From d62089f5b6ea33d842ab4646b51583c65a8be36b Mon Sep 17 00:00:00 2001 From: "goktug@google.com" Date: Fri, 22 Nov 2013 00:22:26 +0000 Subject: [PATCH] New tag & branch for 2.1.2 release --- trunk/LICENSE | 202 ++ trunk/build.xml | 362 ++++ trunk/javadoc/allclasses-frame.html | 233 +++ trunk/javadoc/allclasses-noframe.html | 233 +++ .../gwt/inject/client/AbstractGinModule.html | 474 +++++ .../gwt/inject/client/AsyncProvider.html | 224 ++ .../gwt/inject/client/CreationException.html | 274 +++ .../google/gwt/inject/client/GinModule.html | 236 +++ .../google/gwt/inject/client/GinModules.html | 259 +++ .../google/gwt/inject/client/Ginjector.html | 204 ++ .../gwt/inject/client/NoGinModules.html | 173 ++ .../gwt/inject/client/PrivateGinModule.html | 545 +++++ .../client/assistedinject/FactoryModule.html | 338 +++ .../GinFactoryModuleBuilder.html | 932 +++++++++ .../client/assistedinject/package-frame.html | 34 + .../assistedinject/package-summary.html | 160 ++ .../client/assistedinject/package-tree.html | 152 ++ .../binder/GinAnnotatedBindingBuilder.html | 258 +++ .../GinAnnotatedConstantBindingBuilder.html | 231 +++ .../binder/GinAnnotatedElementBuilder.html | 237 +++ .../gwt/inject/client/binder/GinBinder.html | 481 +++++ .../binder/GinConstantBindingBuilder.html | 408 ++++ .../binder/GinLinkedBindingBuilder.html | 369 ++++ .../binder/GinScopedBindingBuilder.html | 237 +++ .../client/binder/PrivateGinBinder.html | 279 +++ .../inject/client/binder/package-frame.html | 46 + .../inject/client/binder/package-summary.html | 185 ++ .../inject/client/binder/package-tree.html | 155 ++ .../client/multibindings/GinMapBinder.html | 574 ++++++ .../client/multibindings/GinMultibinder.html | 508 +++++ .../client/multibindings/TypeLiterals.html | 303 +++ .../client/multibindings/package-frame.html | 36 + .../client/multibindings/package-summary.html | 163 ++ .../client/multibindings/package-tree.html | 151 ++ .../gwt/inject/client/package-frame.html | 73 + .../gwt/inject/client/package-summary.html | 218 ++ .../gwt/inject/client/package-tree.html | 172 ++ .../inject/rebind/DoubleBindingChecker.html | 278 +++ .../gwt/inject/rebind/ErrorManager.html | 332 +++ .../google/gwt/inject/rebind/GinScope.html | 340 +++ .../gwt/inject/rebind/GinjectorBindings.html | 969 +++++++++ .../gwt/inject/rebind/GinjectorGenerator.html | 274 +++ .../inject/rebind/GinjectorInterfaceType.html | 172 ++ .../inject/rebind/GinjectorNameGenerator.html | 262 +++ .../inject/rebind/GuiceBindingVisitor.html | 474 +++++ .../rebind/GuiceBindingVisitorFactory.html | 229 +++ ...entVisitor.GuiceElementVisitorFactory.html | 211 ++ .../inject/rebind/GuiceElementVisitor.html | 460 +++++ .../gwt/inject/rebind/ModuleClasses.html | 172 ++ .../gwt/inject/rebind/RootBindings.html | 172 ++ .../AnnotatedElementBuilderAdapter.html | 251 +++ .../rebind/adapter/GinModuleAdapter.html | 338 +++ .../rebind/adapter/GwtDotCreateProvider.html | 239 +++ .../rebind/adapter/PrivateBinderAdapter.html | 465 +++++ .../adapter/PrivateGinModuleAdapter.html | 316 +++ .../inject/rebind/adapter/package-frame.html | 40 + .../rebind/adapter/package-summary.html | 173 ++ .../inject/rebind/adapter/package-tree.html | 158 ++ .../rebind/binding/AsyncProviderBinding.html | 377 ++++ .../rebind/binding/BindClassBinding.html | 360 ++++ .../rebind/binding/BindConstantBinding.html | 386 ++++ .../rebind/binding/BindProviderBinding.html | 360 ++++ .../gwt/inject/rebind/binding/Binding.html | 319 +++ .../inject/rebind/binding/BindingFactory.html | 475 +++++ .../rebind/binding/BindingFactoryImpl.html | 564 +++++ .../inject/rebind/binding/BindingIndex.html | 218 ++ .../binding/CallConstructorBinding.html | 466 +++++ .../binding/CallGwtDotCreateBinding.html | 514 +++++ .../gwt/inject/rebind/binding/Context.html | 330 +++ .../gwt/inject/rebind/binding/Dependency.html | 543 +++++ .../rebind/binding/ExposedChildBinding.html | 417 ++++ .../inject/rebind/binding/FactoryBinding.html | 371 ++++ .../rebind/binding/GinjectorBinding.html | 394 ++++ .../binding/ImplicitProviderBinding.html | 361 ++++ .../gwt/inject/rebind/binding/Injectable.html | 173 ++ .../inject/rebind/binding/ParentBinding.html | 379 ++++ .../rebind/binding/ProviderMethodBinding.html | 363 ++++ .../binding/RemoteServiceProxyBinding.html | 509 +++++ .../inject/rebind/binding/package-frame.html | 88 + .../rebind/binding/package-summary.html | 270 +++ .../inject/rebind/binding/package-tree.html | 175 ++ .../output/FragmentPackageName.Factory.html | 211 ++ .../rebind/output/FragmentPackageName.html | 296 +++ .../rebind/output/GinjectorImplOutputter.html | 287 +++ .../inject/rebind/output/OutputModule.html | 270 +++ .../inject/rebind/output/package-frame.html | 47 + .../inject/rebind/output/package-summary.html | 179 ++ .../inject/rebind/output/package-tree.html | 159 ++ .../gwt/inject/rebind/package-frame.html | 83 + .../gwt/inject/rebind/package-summary.html | 237 +++ .../gwt/inject/rebind/package-tree.html | 184 ++ .../inject/rebind/reflect/FieldLiteral.html | 330 +++ .../inject/rebind/reflect/MemberLiteral.html | 562 +++++ .../inject/rebind/reflect/MethodLiteral.html | 533 +++++ .../rebind/reflect/NoSourceNameException.html | 244 +++ .../reflect/ReflectUtil.SignatureBuilder.html | 322 +++ .../inject/rebind/reflect/ReflectUtil.html | 596 ++++++ .../inject/rebind/reflect/package-frame.html | 51 + .../rebind/reflect/package-summary.html | 187 ++ .../inject/rebind/reflect/package-tree.html | 158 ++ .../rebind/resolution/BindingResolver.html | 276 +++ ...encyExplorer.DependencyExplorerOutput.html | 363 ++++ .../DependencyExplorer.Factory.html | 207 ++ .../rebind/resolution/DependencyExplorer.html | 290 +++ .../resolution/DependencyGraph.Builder.html | 276 +++ .../DependencyGraph.GraphPruner.html | 280 +++ .../rebind/resolution/DependencyGraph.html | 347 ++++ .../rebind/resolution/EagerCycleFinder.html | 267 +++ ...ndingCreator.BindingCreationException.html | 250 +++ .../ImplicitBindingCreator.Factory.html | 207 ++ .../resolution/ImplicitBindingCreator.html | 292 +++ .../inject/rebind/resolution/PathFinder.html | 344 ++++ .../rebind/resolution/RequiredKeySet.html | 256 +++ .../rebind/resolution/ResolutionModule.html | 270 +++ .../UnresolvedBindingValidator.Factory.html | 207 ++ ...nresolvedBindingValidator.InvalidKeys.html | 243 +++ .../UnresolvedBindingValidator.html | 363 ++++ .../rebind/resolution/package-frame.html | 82 + .../rebind/resolution/package-summary.html | 241 +++ .../rebind/resolution/package-tree.html | 164 ++ .../rebind/util/AbstractInjectorMethod.html | 328 +++ .../gwt/inject/rebind/util/GuiceUtil.html | 409 ++++ .../inject/rebind/util/InjectorMethod.html | 279 +++ .../rebind/util/InjectorWriteContext.html | 342 ++++ .../util/MemberCollector.FieldFilter.html | 212 ++ .../util/MemberCollector.MethodFilter.html | 217 ++ .../inject/rebind/util/MemberCollector.html | 407 ++++ .../inject/rebind/util/MethodCallUtil.html | 354 ++++ .../gwt/inject/rebind/util/NameGenerator.html | 576 ++++++ .../gwt/inject/rebind/util/Preconditions.html | 690 +++++++ .../gwt/inject/rebind/util/PrettyPrinter.html | 272 +++ .../gwt/inject/rebind/util/SourceSnippet.html | 210 ++ .../rebind/util/SourceSnippetBuilder.html | 294 +++ .../inject/rebind/util/SourceSnippets.html | 404 ++++ .../rebind/util/SourceWriteUtil.Factory.html | 211 ++ .../inject/rebind/util/SourceWriteUtil.html | 620 ++++++ .../gwt/inject/rebind/util/package-frame.html | 71 + .../inject/rebind/util/package-summary.html | 233 +++ .../gwt/inject/rebind/util/package-tree.html | 157 ++ trunk/javadoc/constant-values.html | 144 ++ trunk/javadoc/deprecated-list.html | 144 ++ trunk/javadoc/help-doc.html | 217 ++ trunk/javadoc/index-all.html | 1824 +++++++++++++++++ trunk/javadoc/index.html | 73 + trunk/javadoc/overview-frame.html | 62 + trunk/javadoc/overview-summary.html | 189 ++ trunk/javadoc/overview-tree.html | 225 ++ trunk/javadoc/package-list | 11 + trunk/javadoc/resources/inherit.gif | Bin 0 -> 57 bytes trunk/javadoc/serialized-form.html | 199 ++ trunk/javadoc/stylesheet.css | 29 + trunk/lib/README | 1 + trunk/lib/aopalliance.jar | Bin 0 -> 4467 bytes trunk/lib/guice-3.0.jar | Bin 0 -> 710683 bytes trunk/lib/guice-assistedinject-3.0.jar | Bin 0 -> 36423 bytes trunk/lib/javax.inject.jar | Bin 0 -> 2497 bytes trunk/lib/test/cglib.jar | Bin 0 -> 322362 bytes trunk/lib/test/easymock.jar | Bin 0 -> 111958 bytes trunk/lib/test/junit.jar | Bin 0 -> 121070 bytes trunk/lib/test/objenesis.jar | Bin 0 -> 36034 bytes trunk/samples/HigherLower/build.xml | 96 + .../gwt/gin/higherlower/HigherLower.gwt.xml | 13 + .../gwt/gin/higherlower/client/CardGrid.java | 14 + .../client/DeckOfCardsImageBundle.java | 174 ++ .../higherlower/client/DefaultCardGrid.java | 56 + .../client/DefaultGameDialogs.java | 75 + .../client/DefaultHigherLowerGame.java | 73 + .../higherlower/client/DefaultHomepage.java | 33 + .../higherlower/client/DefaultScoreBoard.java | 34 + .../gin/higherlower/client/GameDialogs.java | 11 + .../gwt/gin/higherlower/client/GameHost.java | 10 + .../gin/higherlower/client/HigherLower.java | 18 + .../higherlower/client/HigherLowerGame.java | 11 + .../gwt/gin/higherlower/client/Homepage.java | 10 + .../higherlower/client/PlayerGuessResult.java | 8 + .../client/RelationshipToPreviousCard.java | 8 + .../gin/higherlower/client/ScoreBoard.java | 15 + .../gwt/gin/higherlower/client/Shuffler.java | 12 + .../higherlower/client/SimpleShuffler.java | 24 + .../gwt/gin/higherlower/client/Walter.java | 69 + .../higherlower/client/gin/BackOfCard.java | 17 + .../client/gin/BackOfCardProvider.java | 22 + .../gin/higherlower/client/gin/Columns.java | 17 + .../higherlower/client/gin/DeckProvider.java | 88 + .../client/gin/HigherOrLowerGinjector.java | 13 + .../client/gin/HigherOrLowerModule.java | 46 + .../higherlower/client/gin/NumberOfCards.java | 17 + .../client/gin/NumberOfCardsProvider.java | 18 + .../gwt/gin/higherlower/client/gin/Rows.java | 17 + .../gin/higherlower/client/gin/StartGame.java | 17 + .../client/gin/StartGameButtonProvider.java | 10 + .../gin/higherlower/client/model/Card.java | 31 + .../gin/higherlower/client/model/Deck.java | 26 + .../higherlower/client/model/HasCards.java | 5 + .../gin/higherlower/client/model/Rank.java | 19 + .../gin/higherlower/client/model/Suit.java | 8 + .../gin/higherlower/public/HigherLower.css | 63 + .../gin/higherlower/public/HigherLower.html | 41 + .../higherlower/public/images/10_clubs.jpg | Bin 0 -> 11716 bytes .../higherlower/public/images/10_diamond.jpg | Bin 0 -> 10503 bytes .../higherlower/public/images/10_heart.jpg | Bin 0 -> 12203 bytes .../higherlower/public/images/10_spade.jpg | Bin 0 -> 10319 bytes .../gin/higherlower/public/images/2_clubs.jpg | Bin 0 -> 5497 bytes .../higherlower/public/images/2_diamond.jpg | Bin 0 -> 5387 bytes .../gin/higherlower/public/images/2_heart.jpg | Bin 0 -> 5798 bytes .../gin/higherlower/public/images/2_spade.jpg | Bin 0 -> 5304 bytes .../gin/higherlower/public/images/3_clubs.jpg | Bin 0 -> 6353 bytes .../higherlower/public/images/3_diamond.jpg | Bin 0 -> 6099 bytes .../gin/higherlower/public/images/3_heart.jpg | Bin 0 -> 6706 bytes .../gin/higherlower/public/images/3_spade.jpg | Bin 0 -> 5973 bytes .../gin/higherlower/public/images/4_clubs.jpg | Bin 0 -> 6885 bytes .../higherlower/public/images/4_diamond.jpg | Bin 0 -> 6465 bytes .../gin/higherlower/public/images/4_heart.jpg | Bin 0 -> 7002 bytes .../gin/higherlower/public/images/4_spade.jpg | Bin 0 -> 6496 bytes .../gin/higherlower/public/images/5_clubs.jpg | Bin 0 -> 7695 bytes .../higherlower/public/images/5_diamond.jpg | Bin 0 -> 7134 bytes .../gin/higherlower/public/images/5_heart.jpg | Bin 0 -> 7886 bytes .../gin/higherlower/public/images/5_spade.jpg | Bin 0 -> 7083 bytes .../gin/higherlower/public/images/6_clubs.jpg | Bin 0 -> 8631 bytes .../higherlower/public/images/6_diamond.jpg | Bin 0 -> 7898 bytes .../gin/higherlower/public/images/6_heart.jpg | Bin 0 -> 8901 bytes .../gin/higherlower/public/images/6_spade.jpg | Bin 0 -> 7834 bytes .../gin/higherlower/public/images/7_clubs.jpg | Bin 0 -> 9198 bytes .../higherlower/public/images/7_diamond.jpg | Bin 0 -> 8296 bytes .../gin/higherlower/public/images/7_heart.jpg | Bin 0 -> 9506 bytes .../gin/higherlower/public/images/7_spade.jpg | Bin 0 -> 8266 bytes .../gin/higherlower/public/images/8_clubs.jpg | Bin 0 -> 10303 bytes .../higherlower/public/images/8_diamond.jpg | Bin 0 -> 9291 bytes .../gin/higherlower/public/images/8_heart.jpg | Bin 0 -> 10795 bytes .../gin/higherlower/public/images/8_spade.jpg | Bin 0 -> 9086 bytes .../gin/higherlower/public/images/9_clubs.jpg | Bin 0 -> 11020 bytes .../higherlower/public/images/9_diamond.jpg | Bin 0 -> 9853 bytes .../gin/higherlower/public/images/9_heart.jpg | Bin 0 -> 11532 bytes .../gin/higherlower/public/images/9_spade.jpg | Bin 0 -> 9638 bytes .../gwt/gin/higherlower/public/images/LICENSE | 165 ++ .../higherlower/public/images/ace_clubs.jpg | Bin 0 -> 6859 bytes .../higherlower/public/images/ace_diamond.jpg | Bin 0 -> 4786 bytes .../higherlower/public/images/ace_heart.jpg | Bin 0 -> 5188 bytes .../higherlower/public/images/ace_spade.jpg | Bin 0 -> 4602 bytes .../gin/higherlower/public/images/back.jpg | Bin 0 -> 21443 bytes .../higherlower/public/images/black_joker.jpg | Bin 0 -> 13595 bytes .../higherlower/public/images/jack_clubs.jpg | Bin 0 -> 19625 bytes .../public/images/jack_diamond.jpg | Bin 0 -> 18657 bytes .../higherlower/public/images/jack_heart.jpg | Bin 0 -> 19483 bytes .../higherlower/public/images/jack_spade.jpg | Bin 0 -> 19939 bytes .../higherlower/public/images/king_clubs.jpg | Bin 0 -> 20657 bytes .../public/images/king_diamond.jpg | Bin 0 -> 20517 bytes .../higherlower/public/images/king_heart.jpg | Bin 0 -> 19897 bytes .../higherlower/public/images/king_spade.jpg | Bin 0 -> 19635 bytes .../higherlower/public/images/queen_clubs.jpg | Bin 0 -> 19942 bytes .../public/images/queen_diamond.jpg | Bin 0 -> 19408 bytes .../higherlower/public/images/queen_heart.jpg | Bin 0 -> 21072 bytes .../higherlower/public/images/queen_spade.jpg | Bin 0 -> 19538 bytes .../higherlower/public/images/red_joker.jpg | Bin 0 -> 13925 bytes trunk/samples/simple/build.xml | 96 + .../gwt/inject/example/simple/Simple.gwt.xml | 16 + .../simple/client/SimpleAsyncWidget.java | 41 + .../simple/client/SimpleConstants.java | 38 + .../simple/client/SimpleConstants.properties | 5 + .../simple/client/SimpleEntryPoint.java | 38 + .../simple/client/SimpleGinModule.java | 34 + .../simple/client/SimpleGinjector.java | 35 + .../example/simple/client/SimpleMessages.java | 32 + .../simple/client/SimpleMessages.properties | 2 + .../example/simple/client/SimpleService.java | 37 + .../simple/client/SimpleServiceImpl.java | 50 + .../example/simple/client/SimpleWidget.java | 119 ++ .../inject/example/simple/public/index.html | 13 + .../inject/example/simple/public/simple.css | 21 + .../src/com/google/gwt/inject/Inject.gwt.xml | 20 + .../gwt/inject/client/AbstractGinModule.java | 99 + .../gwt/inject/client/AsyncProvider.java | 47 + .../gwt/inject/client/CreationException.java | 36 + .../google/gwt/inject/client/GinModule.java | 51 + .../google/gwt/inject/client/GinModules.java | 48 + .../google/gwt/inject/client/Ginjector.java | 56 + .../gwt/inject/client/NoGinModules.java | 31 + .../gwt/inject/client/PrivateGinModule.java | 110 + .../assistedinject/BindingCollector.java | 51 + .../client/assistedinject/FactoryModule.java | 59 + .../GinFactoryModuleBuilder.java | 361 ++++ .../binder/GinAnnotatedBindingBuilder.java | 33 + .../GinAnnotatedConstantBindingBuilder.java | 35 + .../binder/GinAnnotatedElementBuilder.java | 36 + .../gwt/inject/client/binder/GinBinder.java | 198 ++ .../binder/GinConstantBindingBuilder.java | 72 + .../binder/GinLinkedBindingBuilder.java | 52 + .../binder/GinScopedBindingBuilder.java | 36 + .../client/binder/PrivateGinBinder.java | 43 + .../client/multibindings/BindingRecorder.java | 84 + .../client/multibindings/GinMapBinder.java | 331 +++ .../client/multibindings/GinMultibinder.java | 172 ++ .../inject/client/multibindings/Internal.java | 32 + .../client/multibindings/InternalModule.java | 97 + .../inject/client/multibindings/MapEntry.java | 44 + .../multibindings/PermitDuplicatesModule.java | 56 + .../client/multibindings/Preconditions.java | 36 + .../client/multibindings/ProviderForMap.java | 48 + .../multibindings/ProviderForMultiMap.java | 43 + .../multibindings/ProviderForProviderMap.java | 49 + .../ProviderForProviderMultiMap.java | 43 + .../client/multibindings/ProviderForSet.java | 48 + .../RuntimeBindingsRegistry.java | 50 + .../RuntimeBindingsRegistryModule.java | 27 + .../client/multibindings/SimpleMultimap.java | 45 + .../client/multibindings/TypeLiterals.java | 56 + .../src/com/google/gwt/inject/guiceapi/README | 12 + .../client/multibindings/TypeLiterals.java | 47 + .../google/inject/ConfigurationException.java | 34 + .../guiceapi/com/google/inject/Key.java | 75 + .../guiceapi/com/google/inject/Provider.java | 58 + .../guiceapi/com/google/inject/Singleton.java | 34 + .../com/google/inject/TypeLiteral.java | 30 + .../com/google/inject/name/Named.java | 37 + .../com/google/inject/name/Names.java | 27 + .../com/google/inject/spi/Message.java | 30 + .../inject/guiceapi/javax/inject/Inject.java | 24 + .../inject/guiceapi/javax/inject/Named.java | 25 + .../guiceapi/javax/inject/Provider.java | 22 + .../guiceapi/javax/inject/Qualifier.java | 23 + .../inject/guiceapi/javax/inject/Scope.java | 23 + .../guiceapi/javax/inject/Singleton.java | 23 + .../gwt/inject/rebind/BindingsProcessor.java | 241 +++ .../inject/rebind/DoubleBindingChecker.java | 124 ++ .../gwt/inject/rebind/ErrorManager.java | 62 + .../inject/rebind/GinBridgeClassLoader.java | 177 ++ .../google/gwt/inject/rebind/GinScope.java | 24 + .../gwt/inject/rebind/GinjectorBindings.java | 530 +++++ .../gwt/inject/rebind/GinjectorGenerator.java | 242 +++ .../inject/rebind/GinjectorGeneratorImpl.java | 104 + .../rebind/GinjectorGeneratorModule.java | 111 + .../inject/rebind/GinjectorInterfaceType.java | 33 + .../inject/rebind/GinjectorNameGenerator.java | 93 + .../inject/rebind/GuiceBindingVisitor.java | 158 ++ .../rebind/GuiceBindingVisitorFactory.java | 50 + .../inject/rebind/GuiceElementVisitor.java | 180 ++ .../gwt/inject/rebind/ModuleClasses.java | 33 + .../gwt/inject/rebind/RootBindings.java | 33 + .../AnnotatedBindingBuilderAdapter.java | 75 + ...nnotatedConstantBindingBuilderAdapter.java | 39 + .../AnnotatedElementBuilderAdapter.java | 39 + .../inject/rebind/adapter/BinderAdapter.java | 81 + .../ConstantBindingBuilderAdapter.java | 67 + .../rebind/adapter/GinModuleAdapter.java | 77 + .../rebind/adapter/GwtDotCreateProvider.java | 45 + .../adapter/LinkedBindingBuilderAdapter.java | 64 + .../rebind/adapter/PrivateBinderAdapter.java | 49 + .../adapter/PrivateGinModuleAdapter.java | 63 + .../adapter/ScopedBindingBuilderAdapter.java | 37 + .../rebind/binding/AbstractBinding.java | 84 + .../rebind/binding/AsyncProviderBinding.java | 105 + .../rebind/binding/BindClassBinding.java | 85 + .../rebind/binding/BindConstantBinding.java | 121 ++ .../rebind/binding/BindProviderBinding.java | 76 + .../gwt/inject/rebind/binding/Binding.java | 74 + .../inject/rebind/binding/BindingFactory.java | 68 + .../rebind/binding/BindingFactoryImpl.java | 119 ++ .../inject/rebind/binding/BindingIndex.java | 36 + .../binding/CallConstructorBinding.java | 57 + .../binding/CallGwtDotCreateBinding.java | 64 + .../gwt/inject/rebind/binding/Context.java | 65 + .../inject/rebind/binding/CreatorBinding.java | 101 + .../gwt/inject/rebind/binding/Dependency.java | 177 ++ .../rebind/binding/ExposedChildBinding.java | 89 + .../inject/rebind/binding/FactoryBinding.java | 458 +++++ .../rebind/binding/GinjectorBinding.java | 72 + .../binding/ImplicitProviderBinding.java | 74 + .../gwt/inject/rebind/binding/Injectable.java | 34 + .../inject/rebind/binding/ParentBinding.java | 90 + .../rebind/binding/ProviderMethodBinding.java | 93 + .../binding/RemoteServiceProxyBinding.java | 77 + .../rebind/output/FragmentPackageName.java | 92 + .../output/GinjectorBindingsOutputter.java | 544 +++++ .../output/GinjectorFragmentContext.java | 176 ++ .../output/GinjectorFragmentOutputter.java | 282 +++ .../rebind/output/GinjectorImplOutputter.java | 263 +++ .../inject/rebind/output/OutputModule.java | 43 + .../rebind/output/ReachabilityAnalyzer.java | 286 +++ .../inject/rebind/reflect/FieldLiteral.java | 73 + .../inject/rebind/reflect/MemberLiteral.java | 184 ++ .../inject/rebind/reflect/MethodLiteral.java | 262 +++ .../rebind/reflect/NoSourceNameException.java | 31 + .../inject/rebind/reflect/ReflectUtil.java | 585 ++++++ .../rebind/resolution/BindingInstaller.java | 132 ++ .../rebind/resolution/BindingPositioner.java | 289 +++ .../rebind/resolution/BindingResolver.java | 79 + .../rebind/resolution/DependencyExplorer.java | 236 +++ .../rebind/resolution/DependencyGraph.java | 193 ++ .../rebind/resolution/EagerCycleFinder.java | 162 ++ .../resolution/ImplicitBindingCreator.java | 289 +++ .../inject/rebind/resolution/PathFinder.java | 160 ++ .../rebind/resolution/RequiredKeySet.java | 54 + .../rebind/resolution/ResolutionModule.java | 42 + .../UnresolvedBindingValidator.java | 254 +++ .../rebind/util/AbstractInjectorMethod.java | 43 + .../gwt/inject/rebind/util/GuiceUtil.java | 181 ++ .../inject/rebind/util/InjectorMethod.java | 42 + .../rebind/util/InjectorWriteContext.java | 72 + .../inject/rebind/util/MemberCollector.java | 326 +++ .../inject/rebind/util/MethodCallUtil.java | 417 ++++ .../gwt/inject/rebind/util/NameGenerator.java | 234 +++ .../gwt/inject/rebind/util/Preconditions.java | 398 ++++ .../gwt/inject/rebind/util/PrettyPrinter.java | 198 ++ .../gwt/inject/rebind/util/SourceSnippet.java | 26 + .../rebind/util/SourceSnippetBuilder.java | 55 + .../inject/rebind/util/SourceSnippets.java | 140 ++ .../inject/rebind/util/SourceWriteUtil.java | 406 ++++ .../google/gwt/inject/GinClientTestSuite.java | 123 ++ .../com/google/gwt/inject/InjectTest.gwt.xml | 29 + .../google/gwt/inject/client/EagerObject.java | 29 + .../google/gwt/inject/client/InjectTest.java | 140 ++ .../gwt/inject/client/InnerGinjectorTest.java | 144 ++ .../com/google/gwt/inject/client/MyApp.java | 57 + .../gwt/inject/client/MyAppGinModule.java | 42 + .../gwt/inject/client/MyAppGinjector.java | 52 + .../inject/client/MyBindingAnnotation.java | 30 + .../google/gwt/inject/client/MyMessages.java | 29 + .../gwt/inject/client/MyOtherAnnotation.java | 29 + .../google/gwt/inject/client/MyProvided.java | 32 + .../gwt/inject/client/MyProvidedProvider.java | 27 + .../gwt/inject/client/MyRemoteService.java | 24 + .../inject/client/MyRemoteServiceAsync.java | 22 + .../google/gwt/inject/client/MyService.java | 23 + .../gwt/inject/client/MyServiceImpl.java | 26 + .../gwt/inject/client/SimpleObject.java | 22 + .../assistedinject/AnnotatedFactoryTest.java | 50 + .../assistedinject/CarFactoryGinModule.java | 120 ++ .../assistedinject/CarFactoryGinjector.java | 62 + .../client/assistedinject/CarFactoryTest.java | 567 +++++ .../assistedinject/CircularFactoryTest.java | 47 + .../google/gwt/inject/client/binding/Bee.java | 42 + .../gwt/inject/client/binding/Color.java | 30 + .../client/binding/ConstantBindingTest.java | 88 + .../client/binding/EagerBindingTest.java | 36 + .../gwt/inject/client/binding/Fruit.java | 34 + .../inject/client/binding/FruitGinModule.java | 60 + .../inject/client/binding/FruitGinjector.java | 63 + .../client/binding/GinjectorBindingTest.java | 34 + .../gwt/inject/client/binding/Hive.java | 22 + .../client/binding/InjectMembersTest.java | 36 + .../gwt/inject/client/binding/Plant.java | 19 + .../gwt/inject/client/binding/Tree.java | 25 + .../ConfigurationModule.java | 29 + .../ConfigurationModulesGinjector.java | 35 + .../ConfigurationModulesTest.gwt.xml | 35 + .../ConfigurationModulesTest.java | 55 + .../configurationmodules/RegularModule.java | 29 + .../client/constructor/AnimalGinModule.java | 28 + .../client/constructor/AnimalGinjector.java | 29 + .../gwt/inject/client/constructor/Cat.java | 33 + .../constructor/ConstructorInjectTest.java | 46 + .../gwt/inject/client/constructor/Dog.java | 33 + .../inject/client/constructor/Giraffe.java | 35 + .../inject/client/eager/EagerGinModule.java | 27 + .../inject/client/eager/EagerGinjector.java | 25 + .../client/eager/EagerSingletonTest.java | 43 + .../inject/client/eager/MyEagerSingleton.java | 26 + .../client/eager/OtherEagerSingleton.java | 32 + .../gwt/inject/client/field/Basket.java | 50 + .../inject/client/field/FieldInjectTest.java | 85 + .../google/gwt/inject/client/field/Fruit.java | 43 + .../inject/client/field/FruitGinModule.java | 34 + .../inject/client/field/FruitGinjector.java | 37 + .../google/gwt/inject/client/field/Pear.java | 28 + .../google/gwt/inject/client/field/Tree.java | 26 + .../client/generics/GenericsGinModule.java | 96 + .../client/generics/GenericsGinjector.java | 41 + .../inject/client/generics/GenericsTest.java | 165 ++ .../inject/client/generics/Parameterized.java | 72 + .../client/gwtdotcreate/BikeTest.gwt.xml | 25 + .../inject/client/gwtdotcreate/BikeTest.java | 53 + .../gwt/inject/client/gwtdotcreate/Bus.java | 27 + .../client/gwtdotcreate/BusTest.gwt.xml | 24 + .../inject/client/gwtdotcreate/BusTest.java | 48 + .../gwt/inject/client/gwtdotcreate/Car.java | 19 + .../client/gwtdotcreate/CarTest.gwt.xml | 24 + .../inject/client/gwtdotcreate/CarTest.java | 45 + .../gwtdotcreate/GwtDotCreateGinModule.java | 28 + .../gwtdotcreate/GwtDotCreateGinjector.java | 26 + .../gwtdotcreate/GwtDotCreateInjectTest.java | 35 + .../gwt/inject/client/gwtdotcreate/Main.java | 30 + .../inject/client/gwtdotcreate/MainImpl.java | 47 + .../client/gwtdotcreate/MyConstants.java | 25 + .../HierarchicalMyAppGinModule.java | 32 + .../HierarchicalMyAppGinjector.java | 45 + .../client/hierarchical/HierarchicalTest.java | 151 ++ .../implicit/AsyncProviderGinjector.java | 30 + .../client/implicit/AsyncProviderTest.java | 140 ++ .../gwt/inject/client/implicit/Bar.java | 23 + .../inject/client/implicit/BarProvider.java | 30 + .../gwt/inject/client/implicit/Baz.java | 23 + .../gwt/inject/client/implicit/BazImpl.java | 22 + .../gwt/inject/client/implicit/Foo.java | 23 + .../gwt/inject/client/implicit/FooAsync.java | 34 + .../gwt/inject/client/implicit/FooImpl.java | 23 + .../client/implicit/ImplicitBindingTest.java | 53 + .../client/implicit/ImplicitGinjector.java | 30 + .../client/implicit/OptionalMembers.java | 27 + .../gwt/inject/client/implicit/Quux.java | 23 + .../inject/client/implicit/QuuxProvider.java | 28 + .../gwt/inject/client/injectionorder/Foo.java | 44 + .../injectionorder/InjectionOrderTest.java | 40 + .../InstallDuplicateTest.java | 220 ++ .../gwt/inject/client/jsr330/Jsr330Test.java | 209 ++ .../gwt/inject/client/method/Circle.java | 29 + .../gwt/inject/client/method/Ellipse.java | 27 + .../gwt/inject/client/method/Hexagon.java | 37 + .../gwt/inject/client/method/Jigsaw.java | 57 + .../client/method/MethodInjectTest.java | 282 +++ .../gwt/inject/client/method/Rectangle.java | 57 + .../inject/client/method/ShapeGinModule.java | 36 + .../inject/client/method/ShapeGinjector.java | 41 + .../gwt/inject/client/method/Square.java | 43 + .../inject/client/method/ThinRectangle.java | 23 + .../gwt/inject/client/method/Triangle.java | 45 + .../gwt/inject/client/misc/DynamicClass.java | 39 + .../gwt/inject/client/misc/StaticClass.java | 62 + .../client/misc/StaticEagerSingleton.java | 52 + .../client/misc/StaticInjectGinModule.java | 37 + .../client/misc/StaticInjectGinjector.java | 32 + .../inject/client/misc/StaticInjectTest.java | 127 ++ .../subpackage/StaticSubEagerSingleton.java | 51 + .../multibindings/GinMapBinderTest.java | 362 ++++ .../multibindings/GinMultibinderTest.java | 277 +++ .../client/multibindings/TestTypes.java | 86 + .../google/gwt/inject/client/nested/A.java | 26 + .../google/gwt/inject/client/nested/B.java | 26 + .../inject/client/nested/NestedGinjector.java | 26 + .../client/nested/NestedGinjectorModule.java | 28 + .../gwt/inject/client/nested/NestedTest.java | 42 + .../gwt/inject/client/nested/Outer.java | 45 + .../client/nomodules/NoModulesGinjector.java | 27 + .../client/nomodules/NoModulesTest.java | 38 + .../inject/client/nomodules/Something.java | 22 + .../client/nonpublic/NonPublicGinjector.java | 23 + .../client/nonpublic/NonPublicTest.java | 57 + .../client/nonpublic/secret/PrivateClass.java | 23 + .../client/nonpublic/secret/SecretMain.java | 72 + .../gwt/inject/client/optional/Bar.java | 20 + .../gwt/inject/client/optional/Foo.java | 23 + .../client/optional/OptionalGinModule.java | 28 + .../client/optional/OptionalGinjector.java | 24 + .../optional/OptionalInjectionTest.java | 77 + .../client/optional/OptionalMembersClass.java | 65 + .../packageprivate/PackagePrivateTest.java | 209 ++ .../subpackage/SubPackageGinModule.java | 153 ++ .../subsubpackage/SubSubPackageGinModule.java | 98 + .../gwt/inject/client/privatebasic/Card.java | 26 + .../client/privatebasic/PrivateBasicTest.java | 153 ++ .../PrivateDependsOnExposedTest.java | 56 + .../PrivateDoubleBindsTest.java | 46 + ...rivateEagerSingletonInstantiationTest.java | 57 + .../PrivateEagerSingletonTest.java | 116 ++ .../privatefactory/PrivateFactoryTest.java | 160 ++ .../PrivateGwtCreateTest.java | 115 ++ .../client/privategwtcreate/UiView.java | 21 + .../client/privategwtcreate/UiView.ui.xml | 5 + .../inject/client/privatemanylevel/Car.java | 48 + .../inject/client/privatemanylevel/Green.java | 30 + .../PrivateManyLevelTest.java | 146 ++ .../inject/client/privatemanylevel/Red.java | 29 + .../privatepinned/PrivatePinnedTest.java | 192 ++ .../inject/client/provider/ProviderTest.java | 34 + .../gwt/inject/client/provider/Watch.java | 44 + .../client/provider/WatchGinModule.java | 26 + .../client/provider/WatchGinjector.java | 26 + .../client/providermethods/AbModule.java | 42 + .../client/providermethods/CdModule.java | 47 + .../client/providermethods/ConcatModule.java | 35 + .../providermethods/DamagedGinModule.java | 39 + .../providermethods/DamagedGinjector.java | 25 + .../ProviderMethodsGinjector.java | 32 + .../providermethods/ProviderMethodsTest.java | 61 + .../ScopedImplicitGinjector.java | 25 + .../scopedimplicit/ScopedImplicitModule.java | 25 + .../scopedimplicit/ScopedImplicitTest.java | 36 + .../inject/generated/GeneratedTest.gwt.xml | 26 + .../inject/generated/client/Framework.java | 22 + .../generated/client/GeneratorTest.java | 50 + .../generated/rebind/FrameworkGenerator.java | 110 + .../rebind/GinBridgeClassLoaderTest.java | 106 + .../inject/rebind/GinjectorBindingsTest.java | 354 ++++ .../inject/rebind/GinjectorGeneratorTest.java | 60 + .../gwt/inject/rebind/InitializableA.java | 23 + .../gwt/inject/rebind/InitializableB.java | 23 + .../binding/BindConstantBindingTest.java | 145 ++ .../gwt/inject/rebind/binding/Color.java | 20 + .../rebind/binding/FactoryBindingTest.java | 202 ++ .../binding/ProviderMethodBindingTest.java | 141 ++ .../GinjectorBindingsOutputterTest.java | 176 ++ .../output/subpackage/SubPackageClass.java | 19 + .../rebind/reflect/MemberLiteralTest.java | 77 + .../rebind/reflect/MethodLiteralTest.java | 57 + .../rebind/reflect/ReflectUtilTest.java | 395 ++++ .../subpackage/BogusTypeLiteralMaker.java | 38 + .../resolution/BindingInstallerTest.java | 172 ++ .../resolution/BindingPositionerTest.java | 460 +++++ .../resolution/BindingResolverTest.java | 661 ++++++ .../resolution/DependencyExplorerTest.java | 279 +++ .../resolution/EagerCycleFinderTest.java | 290 +++ .../ImplicitBindingCreatorTest.java | 163 ++ .../rebind/resolution/PathFinderTest.java | 153 ++ .../rebind/resolution/RequiredKeySetTest.java | 91 + .../inject/rebind/resolution/TestUtils.java | 78 + .../gwt/inject/rebind/types/Simple.java | 22 + .../gwt/inject/rebind/util/GuiceUtilTest.java | 298 +++ .../rebind/util/MemberCollectorTest.java | 208 ++ .../inject/rebind/util/NameGeneratorTest.java | 68 + .../inject/rebind/util/PrettyPrinterTest.java | 181 ++ .../rebind/util/SourceWriteUtilTest.java | 151 ++ .../rebind/util/types/MethodsClass.java | 31 + .../rebind/util/types/Parameterized.java | 33 + .../rebind/util/types/SimpleInterface.java | 21 + .../inject/rebind/util/types/SubClass.java | 55 + .../rebind/util/types/SubInterface.java | 21 + .../inject/rebind/util/types/SuperClass.java | 41 + .../rebind/util/types/SuperInterface.java | 25 + .../rebind/util/types/WildcardFieldClass.java | 24 + .../util/types/secret/SecretSubClass.java | 35 + .../inject/superclient/supersource/Bar.java | 34 + .../inject/superclient/supersource/Foo.java | 24 + .../inject/superclient/supersource/Bar.java | 26 + .../inject/superclient/supersource/Foo.java | 25 + .../supersource/SuperSourceTest.java | 59 + 624 files changed, 77522 insertions(+) create mode 100644 trunk/LICENSE create mode 100644 trunk/build.xml create mode 100644 trunk/javadoc/allclasses-frame.html create mode 100644 trunk/javadoc/allclasses-noframe.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/AbstractGinModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/AsyncProvider.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/CreationException.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/GinModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/GinModules.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/Ginjector.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/NoGinModules.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/PrivateGinModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/assistedinject/FactoryModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/assistedinject/GinFactoryModuleBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedBindingBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedConstantBindingBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedElementBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinBinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinConstantBindingBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinLinkedBindingBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/GinScopedBindingBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/PrivateGinBinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/binder/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMapBinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMultibinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/TypeLiterals.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/multibindings/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/client/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/DoubleBindingChecker.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/ErrorManager.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GinScope.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GinjectorBindings.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GinjectorGenerator.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GinjectorInterfaceType.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GinjectorNameGenerator.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitor.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitorFactory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.GuiceElementVisitorFactory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/ModuleClasses.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/RootBindings.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/AnnotatedElementBuilderAdapter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/GinModuleAdapter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/GwtDotCreateProvider.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateBinderAdapter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateGinModuleAdapter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/AsyncProviderBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindClassBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindConstantBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindProviderBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/Binding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactoryImpl.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingIndex.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/CallConstructorBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/CallGwtDotCreateBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/Context.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/Dependency.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/ExposedChildBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/FactoryBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/GinjectorBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/ImplicitProviderBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/Injectable.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/ParentBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/ProviderMethodBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/RemoteServiceProxyBinding.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/binding/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.Factory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/GinjectorImplOutputter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/OutputModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/output/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/FieldLiteral.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/MemberLiteral.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/MethodLiteral.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/NoSourceNameException.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.SignatureBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/BindingResolver.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.DependencyExplorerOutput.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.Factory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.Builder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.GraphPruner.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/EagerCycleFinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.BindingCreationException.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.Factory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/PathFinder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/RequiredKeySet.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/ResolutionModule.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.Factory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.InvalidKeys.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-tree.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/AbstractInjectorMethod.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/GuiceUtil.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorMethod.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorWriteContext.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.FieldFilter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.MethodFilter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/MethodCallUtil.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/NameGenerator.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/Preconditions.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/PrettyPrinter.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippet.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippetBuilder.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippets.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.Factory.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/package-frame.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/package-summary.html create mode 100644 trunk/javadoc/com/google/gwt/inject/rebind/util/package-tree.html create mode 100644 trunk/javadoc/constant-values.html create mode 100644 trunk/javadoc/deprecated-list.html create mode 100644 trunk/javadoc/help-doc.html create mode 100644 trunk/javadoc/index-all.html create mode 100644 trunk/javadoc/index.html create mode 100644 trunk/javadoc/overview-frame.html create mode 100644 trunk/javadoc/overview-summary.html create mode 100644 trunk/javadoc/overview-tree.html create mode 100644 trunk/javadoc/package-list create mode 100644 trunk/javadoc/resources/inherit.gif create mode 100644 trunk/javadoc/serialized-form.html create mode 100644 trunk/javadoc/stylesheet.css create mode 100644 trunk/lib/README create mode 100644 trunk/lib/aopalliance.jar create mode 100644 trunk/lib/guice-3.0.jar create mode 100644 trunk/lib/guice-assistedinject-3.0.jar create mode 100644 trunk/lib/javax.inject.jar create mode 100644 trunk/lib/test/cglib.jar create mode 100644 trunk/lib/test/easymock.jar create mode 100644 trunk/lib/test/junit.jar create mode 100644 trunk/lib/test/objenesis.jar create mode 100644 trunk/samples/HigherLower/build.xml create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/HigherLower.gwt.xml create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/CardGrid.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DeckOfCardsImageBundle.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultCardGrid.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultGameDialogs.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHigherLowerGame.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHomepage.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultScoreBoard.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameDialogs.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameHost.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLower.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLowerGame.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Homepage.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/PlayerGuessResult.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/RelationshipToPreviousCard.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/ScoreBoard.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Shuffler.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/SimpleShuffler.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Walter.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCard.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCardProvider.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Columns.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/DeckProvider.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerGinjector.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerModule.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCards.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCardsProvider.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Rows.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGame.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGameButtonProvider.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/model/Card.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/model/Deck.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/model/HasCards.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/model/Rank.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/model/Suit.java create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/HigherLower.css create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/HigherLower.html create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/10_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/10_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/10_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/10_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/2_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/2_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/2_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/2_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/3_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/3_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/3_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/3_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/4_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/4_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/4_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/4_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/5_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/5_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/5_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/5_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/6_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/6_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/6_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/6_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/7_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/7_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/7_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/7_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/8_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/8_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/8_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/8_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/9_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/9_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/9_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/9_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/LICENSE create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/ace_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/ace_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/ace_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/ace_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/back.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/black_joker.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/jack_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/jack_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/jack_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/jack_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/king_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/king_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/king_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/king_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/queen_clubs.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/queen_diamond.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/queen_heart.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/queen_spade.jpg create mode 100644 trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/public/images/red_joker.jpg create mode 100644 trunk/samples/simple/build.xml create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/Simple.gwt.xml create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleAsyncWidget.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleConstants.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleConstants.properties create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleEntryPoint.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleGinModule.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleGinjector.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleMessages.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleMessages.properties create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleService.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleServiceImpl.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/client/SimpleWidget.java create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/public/index.html create mode 100644 trunk/samples/simple/src/com/google/gwt/inject/example/simple/public/simple.css create mode 100644 trunk/src/com/google/gwt/inject/Inject.gwt.xml create mode 100644 trunk/src/com/google/gwt/inject/client/AbstractGinModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/AsyncProvider.java create mode 100644 trunk/src/com/google/gwt/inject/client/CreationException.java create mode 100644 trunk/src/com/google/gwt/inject/client/GinModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/GinModules.java create mode 100644 trunk/src/com/google/gwt/inject/client/Ginjector.java create mode 100644 trunk/src/com/google/gwt/inject/client/NoGinModules.java create mode 100644 trunk/src/com/google/gwt/inject/client/PrivateGinModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/assistedinject/BindingCollector.java create mode 100644 trunk/src/com/google/gwt/inject/client/assistedinject/FactoryModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/assistedinject/GinFactoryModuleBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinAnnotatedBindingBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinAnnotatedConstantBindingBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinAnnotatedElementBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinBinder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinConstantBindingBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinLinkedBindingBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/GinScopedBindingBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/client/binder/PrivateGinBinder.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/BindingRecorder.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/GinMapBinder.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/GinMultibinder.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/Internal.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/InternalModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/MapEntry.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/PermitDuplicatesModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/Preconditions.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/ProviderForMap.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/ProviderForMultiMap.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/ProviderForProviderMap.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/ProviderForProviderMultiMap.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/ProviderForSet.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/RuntimeBindingsRegistry.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/RuntimeBindingsRegistryModule.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/SimpleMultimap.java create mode 100644 trunk/src/com/google/gwt/inject/client/multibindings/TypeLiterals.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/README create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/gwt/inject/client/multibindings/TypeLiterals.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/ConfigurationException.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/Key.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/Provider.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/Singleton.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/TypeLiteral.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/name/Named.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/name/Names.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/com/google/inject/spi/Message.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Inject.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Named.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Provider.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Qualifier.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Scope.java create mode 100644 trunk/src/com/google/gwt/inject/guiceapi/javax/inject/Singleton.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/BindingsProcessor.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/DoubleBindingChecker.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/ErrorManager.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinBridgeClassLoader.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinScope.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorBindings.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorGenerator.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorGeneratorImpl.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorGeneratorModule.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorInterfaceType.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GinjectorNameGenerator.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GuiceBindingVisitor.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GuiceBindingVisitorFactory.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/GuiceElementVisitor.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/ModuleClasses.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/RootBindings.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/AnnotatedBindingBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/AnnotatedConstantBindingBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/AnnotatedElementBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/BinderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/ConstantBindingBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/GinModuleAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/GwtDotCreateProvider.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/LinkedBindingBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/PrivateBinderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/PrivateGinModuleAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/adapter/ScopedBindingBuilderAdapter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/AbstractBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/AsyncProviderBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindClassBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindConstantBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindProviderBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/Binding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindingFactory.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindingFactoryImpl.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/BindingIndex.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/CallConstructorBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/CallGwtDotCreateBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/Context.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/CreatorBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/Dependency.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/ExposedChildBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/FactoryBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/GinjectorBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/ImplicitProviderBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/Injectable.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/ParentBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/ProviderMethodBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/binding/RemoteServiceProxyBinding.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/FragmentPackageName.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/GinjectorBindingsOutputter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/GinjectorFragmentContext.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/GinjectorFragmentOutputter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/GinjectorImplOutputter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/OutputModule.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/output/ReachabilityAnalyzer.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/reflect/FieldLiteral.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/reflect/MemberLiteral.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/reflect/MethodLiteral.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/reflect/NoSourceNameException.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/reflect/ReflectUtil.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/BindingInstaller.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/BindingPositioner.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/BindingResolver.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/DependencyExplorer.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/DependencyGraph.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/EagerCycleFinder.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/PathFinder.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/RequiredKeySet.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/ResolutionModule.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/AbstractInjectorMethod.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/GuiceUtil.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/InjectorMethod.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/InjectorWriteContext.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/MemberCollector.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/MethodCallUtil.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/NameGenerator.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/Preconditions.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/PrettyPrinter.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/SourceSnippet.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/SourceSnippetBuilder.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/SourceSnippets.java create mode 100644 trunk/src/com/google/gwt/inject/rebind/util/SourceWriteUtil.java create mode 100644 trunk/test/com/google/gwt/inject/GinClientTestSuite.java create mode 100644 trunk/test/com/google/gwt/inject/InjectTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/client/EagerObject.java create mode 100644 trunk/test/com/google/gwt/inject/client/InjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/InnerGinjectorTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyApp.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyAppGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyAppGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyBindingAnnotation.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyMessages.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyOtherAnnotation.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyProvided.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyProvidedProvider.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyRemoteService.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyRemoteServiceAsync.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyService.java create mode 100644 trunk/test/com/google/gwt/inject/client/MyServiceImpl.java create mode 100644 trunk/test/com/google/gwt/inject/client/SimpleObject.java create mode 100644 trunk/test/com/google/gwt/inject/client/assistedinject/AnnotatedFactoryTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/assistedinject/CarFactoryGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/assistedinject/CarFactoryGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/assistedinject/CarFactoryTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/assistedinject/CircularFactoryTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Bee.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Color.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/ConstantBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/EagerBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Fruit.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/FruitGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/FruitGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/GinjectorBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Hive.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/InjectMembersTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Plant.java create mode 100644 trunk/test/com/google/gwt/inject/client/binding/Tree.java create mode 100644 trunk/test/com/google/gwt/inject/client/configurationmodules/ConfigurationModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/configurationmodules/ConfigurationModulesGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/configurationmodules/ConfigurationModulesTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/client/configurationmodules/ConfigurationModulesTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/configurationmodules/RegularModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/AnimalGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/AnimalGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/Cat.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/ConstructorInjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/Dog.java create mode 100644 trunk/test/com/google/gwt/inject/client/constructor/Giraffe.java create mode 100644 trunk/test/com/google/gwt/inject/client/eager/EagerGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/eager/EagerGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/eager/EagerSingletonTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/eager/MyEagerSingleton.java create mode 100644 trunk/test/com/google/gwt/inject/client/eager/OtherEagerSingleton.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/Basket.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/FieldInjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/Fruit.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/FruitGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/FruitGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/Pear.java create mode 100644 trunk/test/com/google/gwt/inject/client/field/Tree.java create mode 100644 trunk/test/com/google/gwt/inject/client/generics/GenericsGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/generics/GenericsGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/generics/GenericsTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/generics/Parameterized.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/BikeTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/BikeTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/Bus.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/BusTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/BusTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/Car.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/CarTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/CarTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/GwtDotCreateGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/GwtDotCreateGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/GwtDotCreateInjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/Main.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/MainImpl.java create mode 100644 trunk/test/com/google/gwt/inject/client/gwtdotcreate/MyConstants.java create mode 100644 trunk/test/com/google/gwt/inject/client/hierarchical/HierarchicalMyAppGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/hierarchical/HierarchicalMyAppGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/hierarchical/HierarchicalTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/AsyncProviderGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/AsyncProviderTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/Bar.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/BarProvider.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/Baz.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/BazImpl.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/Foo.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/FooAsync.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/FooImpl.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/ImplicitBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/ImplicitGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/OptionalMembers.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/Quux.java create mode 100644 trunk/test/com/google/gwt/inject/client/implicit/QuuxProvider.java create mode 100644 trunk/test/com/google/gwt/inject/client/injectionorder/Foo.java create mode 100644 trunk/test/com/google/gwt/inject/client/injectionorder/InjectionOrderTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/installduplicate/InstallDuplicateTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/jsr330/Jsr330Test.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Circle.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Ellipse.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Hexagon.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Jigsaw.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/MethodInjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Rectangle.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/ShapeGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/ShapeGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Square.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/ThinRectangle.java create mode 100644 trunk/test/com/google/gwt/inject/client/method/Triangle.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/DynamicClass.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/StaticClass.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/StaticEagerSingleton.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/StaticInjectGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/StaticInjectGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/StaticInjectTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/misc/subpackage/StaticSubEagerSingleton.java create mode 100644 trunk/test/com/google/gwt/inject/client/multibindings/GinMapBinderTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/multibindings/GinMultibinderTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/multibindings/TestTypes.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/A.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/B.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/NestedGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/NestedGinjectorModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/NestedTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/nested/Outer.java create mode 100644 trunk/test/com/google/gwt/inject/client/nomodules/NoModulesGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/nomodules/NoModulesTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/nomodules/Something.java create mode 100644 trunk/test/com/google/gwt/inject/client/nonpublic/NonPublicGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/nonpublic/NonPublicTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/nonpublic/secret/PrivateClass.java create mode 100644 trunk/test/com/google/gwt/inject/client/nonpublic/secret/SecretMain.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/Bar.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/Foo.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/OptionalGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/OptionalGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/OptionalInjectionTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/optional/OptionalMembersClass.java create mode 100644 trunk/test/com/google/gwt/inject/client/packageprivate/PackagePrivateTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/packageprivate/subpackage/SubPackageGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/packageprivate/subpackage/subsubpackage/SubSubPackageGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatebasic/Card.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatebasic/PrivateBasicTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatedependsonexposed/PrivateDependsOnExposedTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatedoublebinds/PrivateDoubleBindsTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privateeager/PrivateEagerSingletonInstantiationTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privateeager/PrivateEagerSingletonTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatefactory/PrivateFactoryTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privategwtcreate/PrivateGwtCreateTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privategwtcreate/UiView.java create mode 100644 trunk/test/com/google/gwt/inject/client/privategwtcreate/UiView.ui.xml create mode 100644 trunk/test/com/google/gwt/inject/client/privatemanylevel/Car.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatemanylevel/Green.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatemanylevel/PrivateManyLevelTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatemanylevel/Red.java create mode 100644 trunk/test/com/google/gwt/inject/client/privatepinned/PrivatePinnedTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/provider/ProviderTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/provider/Watch.java create mode 100644 trunk/test/com/google/gwt/inject/client/provider/WatchGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/provider/WatchGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/AbModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/CdModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/ConcatModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/DamagedGinModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/DamagedGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/ProviderMethodsGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/providermethods/ProviderMethodsTest.java create mode 100644 trunk/test/com/google/gwt/inject/client/scopedimplicit/ScopedImplicitGinjector.java create mode 100644 trunk/test/com/google/gwt/inject/client/scopedimplicit/ScopedImplicitModule.java create mode 100644 trunk/test/com/google/gwt/inject/client/scopedimplicit/ScopedImplicitTest.java create mode 100644 trunk/test/com/google/gwt/inject/generated/GeneratedTest.gwt.xml create mode 100644 trunk/test/com/google/gwt/inject/generated/client/Framework.java create mode 100644 trunk/test/com/google/gwt/inject/generated/client/GeneratorTest.java create mode 100644 trunk/test/com/google/gwt/inject/generated/rebind/FrameworkGenerator.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/GinBridgeClassLoaderTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/GinjectorBindingsTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/GinjectorGeneratorTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/InitializableA.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/InitializableB.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/binding/BindConstantBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/binding/Color.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/binding/FactoryBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/binding/ProviderMethodBindingTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/output/GinjectorBindingsOutputterTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/output/subpackage/SubPackageClass.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/reflect/MemberLiteralTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/reflect/MethodLiteralTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/reflect/ReflectUtilTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/reflect/subpackage/BogusTypeLiteralMaker.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/BindingInstallerTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/BindingPositionerTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/BindingResolverTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/DependencyExplorerTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/EagerCycleFinderTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreatorTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/PathFinderTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/RequiredKeySetTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/resolution/TestUtils.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/types/Simple.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/GuiceUtilTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/MemberCollectorTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/NameGeneratorTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/PrettyPrinterTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/SourceWriteUtilTest.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/MethodsClass.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/Parameterized.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/SimpleInterface.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/SubClass.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/SubInterface.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/SuperClass.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/SuperInterface.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/WildcardFieldClass.java create mode 100644 trunk/test/com/google/gwt/inject/rebind/util/types/secret/SecretSubClass.java create mode 100644 trunk/test/com/google/gwt/inject/super/com/google/gwt/inject/superclient/supersource/Bar.java create mode 100644 trunk/test/com/google/gwt/inject/super/com/google/gwt/inject/superclient/supersource/Foo.java create mode 100644 trunk/test/com/google/gwt/inject/superclient/supersource/Bar.java create mode 100644 trunk/test/com/google/gwt/inject/superclient/supersource/Foo.java create mode 100644 trunk/test/com/google/gwt/inject/superclient/supersource/SuperSourceTest.java diff --git a/trunk/LICENSE b/trunk/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/trunk/LICENSE @@ -0,0 +1,202 @@ + + 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/trunk/build.xml b/trunk/build.xml new file mode 100644 index 0000000..aff266f --- /dev/null +++ b/trunk/build.xml @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/javadoc/allclasses-frame.html b/trunk/javadoc/allclasses-frame.html new file mode 100644 index 0000000..8bc1020 --- /dev/null +++ b/trunk/javadoc/allclasses-frame.html @@ -0,0 +1,233 @@ + + + + + + +All Classes + + + + + + + + + + + +All Classes +
+ + + + + +
AbstractGinModule +
+AbstractInjectorMethod +
+AnnotatedElementBuilderAdapter +
+AsyncProvider +
+AsyncProviderBinding +
+BindClassBinding +
+BindConstantBinding +
+Binding +
+BindingFactory +
+BindingFactoryImpl +
+BindingIndex +
+BindingResolver +
+BindProviderBinding +
+CallConstructorBinding +
+CallGwtDotCreateBinding +
+Context +
+CreationException +
+Dependency +
+DependencyExplorer +
+DependencyExplorer.DependencyExplorerOutput +
+DependencyExplorer.Factory +
+DependencyGraph +
+DependencyGraph.Builder +
+DependencyGraph.GraphPruner +
+DoubleBindingChecker +
+EagerCycleFinder +
+ErrorManager +
+ExposedChildBinding +
+FactoryBinding +
+FactoryModule +
+FieldLiteral +
+FragmentPackageName +
+FragmentPackageName.Factory +
+GinAnnotatedBindingBuilder +
+GinAnnotatedConstantBindingBuilder +
+GinAnnotatedElementBuilder +
+GinBinder +
+GinConstantBindingBuilder +
+GinFactoryModuleBuilder +
+Ginjector +
+GinjectorBinding +
+GinjectorBindings +
+GinjectorGenerator +
+GinjectorImplOutputter +
+GinjectorInterfaceType +
+GinjectorNameGenerator +
+GinLinkedBindingBuilder +
+GinMapBinder +
+GinModule +
+GinModuleAdapter +
+GinModules +
+GinMultibinder +
+GinScope +
+GinScopedBindingBuilder +
+GuiceBindingVisitor +
+GuiceBindingVisitorFactory +
+GuiceElementVisitor +
+GuiceElementVisitor.GuiceElementVisitorFactory +
+GuiceUtil +
+GwtDotCreateProvider +
+ImplicitBindingCreator +
+ImplicitBindingCreator.BindingCreationException +
+ImplicitBindingCreator.Factory +
+ImplicitProviderBinding +
+Injectable +
+InjectorMethod +
+InjectorWriteContext +
+MemberCollector +
+MemberCollector.FieldFilter +
+MemberCollector.MethodFilter +
+MemberLiteral +
+MethodCallUtil +
+MethodLiteral +
+ModuleClasses +
+NameGenerator +
+NoGinModules +
+NoSourceNameException +
+OutputModule +
+ParentBinding +
+PathFinder +
+Preconditions +
+PrettyPrinter +
+PrivateBinderAdapter +
+PrivateGinBinder +
+PrivateGinModule +
+PrivateGinModuleAdapter +
+ProviderMethodBinding +
+ReflectUtil +
+ReflectUtil.SignatureBuilder +
+RemoteServiceProxyBinding +
+RequiredKeySet +
+ResolutionModule +
+RootBindings +
+SourceSnippet +
+SourceSnippetBuilder +
+SourceSnippets +
+SourceWriteUtil +
+SourceWriteUtil.Factory +
+TypeLiterals +
+UnresolvedBindingValidator +
+UnresolvedBindingValidator.Factory +
+UnresolvedBindingValidator.InvalidKeys +
+
+ + + diff --git a/trunk/javadoc/allclasses-noframe.html b/trunk/javadoc/allclasses-noframe.html new file mode 100644 index 0000000..16cfc89 --- /dev/null +++ b/trunk/javadoc/allclasses-noframe.html @@ -0,0 +1,233 @@ + + + + + + +All Classes + + + + + + + + + + + +All Classes +
+ + + + + +
AbstractGinModule +
+AbstractInjectorMethod +
+AnnotatedElementBuilderAdapter +
+AsyncProvider +
+AsyncProviderBinding +
+BindClassBinding +
+BindConstantBinding +
+Binding +
+BindingFactory +
+BindingFactoryImpl +
+BindingIndex +
+BindingResolver +
+BindProviderBinding +
+CallConstructorBinding +
+CallGwtDotCreateBinding +
+Context +
+CreationException +
+Dependency +
+DependencyExplorer +
+DependencyExplorer.DependencyExplorerOutput +
+DependencyExplorer.Factory +
+DependencyGraph +
+DependencyGraph.Builder +
+DependencyGraph.GraphPruner +
+DoubleBindingChecker +
+EagerCycleFinder +
+ErrorManager +
+ExposedChildBinding +
+FactoryBinding +
+FactoryModule +
+FieldLiteral +
+FragmentPackageName +
+FragmentPackageName.Factory +
+GinAnnotatedBindingBuilder +
+GinAnnotatedConstantBindingBuilder +
+GinAnnotatedElementBuilder +
+GinBinder +
+GinConstantBindingBuilder +
+GinFactoryModuleBuilder +
+Ginjector +
+GinjectorBinding +
+GinjectorBindings +
+GinjectorGenerator +
+GinjectorImplOutputter +
+GinjectorInterfaceType +
+GinjectorNameGenerator +
+GinLinkedBindingBuilder +
+GinMapBinder +
+GinModule +
+GinModuleAdapter +
+GinModules +
+GinMultibinder +
+GinScope +
+GinScopedBindingBuilder +
+GuiceBindingVisitor +
+GuiceBindingVisitorFactory +
+GuiceElementVisitor +
+GuiceElementVisitor.GuiceElementVisitorFactory +
+GuiceUtil +
+GwtDotCreateProvider +
+ImplicitBindingCreator +
+ImplicitBindingCreator.BindingCreationException +
+ImplicitBindingCreator.Factory +
+ImplicitProviderBinding +
+Injectable +
+InjectorMethod +
+InjectorWriteContext +
+MemberCollector +
+MemberCollector.FieldFilter +
+MemberCollector.MethodFilter +
+MemberLiteral +
+MethodCallUtil +
+MethodLiteral +
+ModuleClasses +
+NameGenerator +
+NoGinModules +
+NoSourceNameException +
+OutputModule +
+ParentBinding +
+PathFinder +
+Preconditions +
+PrettyPrinter +
+PrivateBinderAdapter +
+PrivateGinBinder +
+PrivateGinModule +
+PrivateGinModuleAdapter +
+ProviderMethodBinding +
+ReflectUtil +
+ReflectUtil.SignatureBuilder +
+RemoteServiceProxyBinding +
+RequiredKeySet +
+ResolutionModule +
+RootBindings +
+SourceSnippet +
+SourceSnippetBuilder +
+SourceSnippets +
+SourceWriteUtil +
+SourceWriteUtil.Factory +
+TypeLiterals +
+UnresolvedBindingValidator +
+UnresolvedBindingValidator.Factory +
+UnresolvedBindingValidator.InvalidKeys +
+
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/AbstractGinModule.html b/trunk/javadoc/com/google/gwt/inject/client/AbstractGinModule.html new file mode 100644 index 0000000..1d6aeae --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/AbstractGinModule.html @@ -0,0 +1,474 @@ + + + + + + +AbstractGinModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Class AbstractGinModule

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.AbstractGinModule
+
+
+
All Implemented Interfaces:
GinModule
+
+
+
+
public abstract class AbstractGinModule
extends java.lang.Object
implements GinModule
+ + +

+A support class for GinModules which reduces repetition and results in + a more readable configuration. Simply extend this class, implement configure(), and call the inherited methods which mirror those found in + GinBinder. For example: + +

+ public class MyModule extends AbstractGinModule {
+   protected void configure() {
+     bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
+     bind(CreditCardPaymentService.class);
+     bind(PaymentService.class).to(CreditCardPaymentService.class);
+   }
+ }
+ 
+

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
AbstractGinModule() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(java.lang.Class<T> clazz) + +
+           
+protected + + + + +
+<T> GinLinkedBindingBuilder<T>
+
bind(Key<T> key) + +
+           
+protected + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(TypeLiteral<T> type) + +
+           
+protected  GinAnnotatedConstantBindingBuilderbindConstant() + +
+           
+protected  GinBinderbinder() + +
+          Gets direct access to the underlying GinBinder.
+protected abstract  voidconfigure() + +
+           
+ voidconfigure(GinBinder binder) + +
+          Contributes bindings and other configurations for this module to binder.
+protected  voidinstall(GinModule install) + +
+           
+protected  voidrequestStaticInjection(java.lang.Class<?>... types) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+AbstractGinModule

+
+public AbstractGinModule()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public final void configure(GinBinder binder)
+
+
Description copied from interface: GinModule
+
Contributes bindings and other configurations for this module to binder. +

+

+
Specified by:
configure in interface GinModule
+
+
+
+
+
+
+ +

+configure

+
+protected abstract void configure()
+
+
+
+
+
+
+
+
+
+ +

+bind

+
+protected final <T> GinAnnotatedBindingBuilder<T> bind(java.lang.Class<T> clazz)
+
+
+
+
+
+
See Also:
GinBinder.bind(Class)
+
+
+
+ +

+bind

+
+protected final <T> GinAnnotatedBindingBuilder<T> bind(TypeLiteral<T> type)
+
+
+
+
+
+
See Also:
GinBinder.bind(TypeLiteral)
+
+
+
+ +

+bind

+
+protected final <T> GinLinkedBindingBuilder<T> bind(Key<T> key)
+
+
+
+
+
+
See Also:
GinBinder.bind(Key)
+
+
+
+ +

+bindConstant

+
+protected final GinAnnotatedConstantBindingBuilder bindConstant()
+
+
+
+
+
+
See Also:
GinBinder.bindConstant()
+
+
+
+ +

+install

+
+protected final void install(GinModule install)
+
+
+
+
+
+
See Also:
GinBinder#install(Module)
+
+
+
+ +

+requestStaticInjection

+
+protected void requestStaticInjection(java.lang.Class<?>... types)
+
+
+
+
+
+
See Also:
GinBinder.requestStaticInjection(Class[])
+
+
+
+ +

+binder

+
+protected GinBinder binder()
+
+
Gets direct access to the underlying GinBinder. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/AsyncProvider.html b/trunk/javadoc/com/google/gwt/inject/client/AsyncProvider.html new file mode 100644 index 0000000..eb1dc13 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/AsyncProvider.html @@ -0,0 +1,224 @@ + + + + + + +AsyncProvider + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Interface AsyncProvider<T>

+
+
+
public interface AsyncProvider<T>
+ + +

+An object capable of providing an instance of type T asynchronously + via AsyncCallback. The instance is created within a + GWT.runAsync block using the following template: + +

+      public void get(final AsyncCallback callback) {
+        GWT.runAsync(new RunAsyncCallback() {
+          public void onSuccess() {
+            callback.onSuccess(Provider.get());
+          }
+          public void onFailure(Throwable ex) {
+            callback.onFailure(ex);
+          }
+        }
+      }
+  
+

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ voidget(com.google.gwt.user.client.rpc.AsyncCallback<? super T> callback) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+get

+
+void get(com.google.gwt.user.client.rpc.AsyncCallback<? super T> callback)
+
+
+
Parameters:
callback - Callback used to pass the instance of T or an exception + if there is an issue creating that instance.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/CreationException.html b/trunk/javadoc/com/google/gwt/inject/client/CreationException.html new file mode 100644 index 0000000..0db5e5f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/CreationException.html @@ -0,0 +1,274 @@ + + + + + + +CreationException + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Class CreationException

+
+java.lang.Object
+  extended by java.lang.Throwable
+      extended by java.lang.Exception
+          extended by java.lang.RuntimeException
+              extended by com.google.gwt.inject.client.CreationException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class CreationException
extends java.lang.RuntimeException
+ + +

+Exception thrown by Gin at GWT runtime if an error occurs while creating a + requested object. +

+ +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
CreationException(java.lang.String s) + +
+           
CreationException(java.lang.String s, + java.lang.Throwable throwable) + +
+           
CreationException(java.lang.Throwable throwable) + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+CreationException

+
+public CreationException(java.lang.String s)
+
+
+
+ +

+CreationException

+
+public CreationException(java.lang.String s,
+                         java.lang.Throwable throwable)
+
+
+
+ +

+CreationException

+
+public CreationException(java.lang.Throwable throwable)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/GinModule.html b/trunk/javadoc/com/google/gwt/inject/client/GinModule.html new file mode 100644 index 0000000..4705ddd --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/GinModule.html @@ -0,0 +1,236 @@ + + + + + + +GinModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Interface GinModule

+
+
All Known Implementing Classes:
AbstractGinModule, FactoryModule, PrivateGinModule
+
+
+
+
public interface GinModule
+ + +

+GIN counterpart of Guice's Module. A GinModule + implementation is compiled both by the regular Java compiler and + by the GWT compiler. + +

The regular-compiled version is used at GWT compile time as part + of the implementation of the Generator that outputs the generated + Ginjector class. Notably, the Generator calls the + configure method on the module class. + +

The GWT-compiled version is used client-side at runtime. This is + necessary to support provider methods. Important, the GWT client + code never actually calls the configure method on the module class + and it is eliminated as dead code by the compiler. So configure + needs to be GWT compilable, but the resulting code will never execute. + +

Because GinModule classes need to compile as GWT code, + all types that modules reference must be GWT translatable. This + is a problem for types like Key and + TypeLiteral, since they normally + reference Type instances and other untranslatable + things. But since the configure method that uses them won't actually + be executed, all we need is to satisfy the compiler. Thus, we can get away + with using super-source to provide dummy stubs of Key and + TypeLiteral. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ voidconfigure(GinBinder binder) + +
+          Contributes bindings and other configurations for this module to binder.
+  +

+ + + + + + + + +
+Method Detail
+ +

+configure

+
+void configure(GinBinder binder)
+
+
Contributes bindings and other configurations for this module to binder. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/GinModules.html b/trunk/javadoc/com/google/gwt/inject/client/GinModules.html new file mode 100644 index 0000000..d98dd6c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/GinModules.html @@ -0,0 +1,259 @@ + + + + + + +GinModules + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Annotation Type GinModules

+
+
+
@Retention(value=RUNTIME)
+@Target(value=TYPE)
+public @interface GinModules
+ + +

+An annotation to put on @Ginjector subtypes to indicate which + GinModule implementations to use. List the GinModule classes + using the value parameter. If you wish to specify gin module classes + from a GWT module file, list the name of the configuration properties as + string using the properties parameter. + +

Example: +

  @GinModules(value=MyGinModule.class, properties="example.ginModules")
+  public interface ConfigurationModulesGinjector extends Ginjector {
+    // ...
+  }
+ + In MyApp.gwt.xml: +
  <define-configuration-property name="example.ginModules" is-multi-valued="true" />
+  <extend-configuration-property name="example.ginModules"
+      value="com.company.myapp.client.ExampleModule1" />
+  <extend-configuration-property name="example.ginModules"
+      value="com.company.myapp.client.ExampleModule2" />
+

+ +

+


+ +

+ + + + + + + + + + + +
+Required Element Summary
+ java.lang.Class<? extends GinModule>[]value + +
+           
+ + + + + + + + + + +
+Optional Element Summary
+ java.lang.String[]properties + +
+           
+  +

+ + + + + + + + +
+Element Detail
+ +

+value

+
+public abstract java.lang.Class<? extends GinModule>[] value
+
+
+
+
+
+
+
+

+properties

+
+public abstract java.lang.String[] properties
+
+
+
+
+
+
+
+
Default:
{}
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/Ginjector.html b/trunk/javadoc/com/google/gwt/inject/client/Ginjector.html new file mode 100644 index 0000000..41d3e4b --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/Ginjector.html @@ -0,0 +1,204 @@ + + + + + + +Ginjector + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Interface Ginjector

+
+
+
public interface Ginjector
+ + +

+Where the GWT world stops and the GIN/Guice world begins. + Analogous to Guice's Injector, this type can be used to bootstrap injection. Unlike + Guice, however, this is not a type that you create, but rather a type that you extend. It's + best explained with an example. Consider this Guice code: +

+ // Define and create a Module
+ Module applicationModule = ...;
+ 
+ // create an Injector
+ Injector injector = Guice.createInjector(applicationModule);
+
+ // bootstrap the injection
+ injector.getInstance(Application.class);
+ 
+ + Here's the equivalent GIN code: +
+ // Define a GinModule (e.g. ApplicationModule) but don't create it.
+
+ // create a Ginjector
+ ApplicationGinjector ginjector = GWT.create(ApplicationGinjector.class);
+ 
+ // bootstrap the injection
+ RootPanel.get().add(ginjector.getApplication());
+
+ (somewhere else...)
+
+ // define a Ginjector subtype
+ @GinModules(ApplicationModule.class)
+ public interface ApplicationGinjector extends Ginjector {
+   Application getApplication();
+ }
+ 
+ + Note that this is not named "G-injector" -- its "GIN-jector." +

+ +

+


+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/NoGinModules.html b/trunk/javadoc/com/google/gwt/inject/client/NoGinModules.html new file mode 100644 index 0000000..5bdf1c2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/NoGinModules.html @@ -0,0 +1,173 @@ + + + + + + +NoGinModules + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Annotation Type NoGinModules

+
+
+
@Retention(value=RUNTIME)
+@Target(value=TYPE)
+public @interface NoGinModules
+ + +

+Gin warns in cases where no GinModule is registered with a Ginjector via a + @GinModules annotation. Annotating the Ginjector with this annotation instead + suppresses the warning. +

+ +

+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/PrivateGinModule.html b/trunk/javadoc/com/google/gwt/inject/client/PrivateGinModule.html new file mode 100644 index 0000000..9d6b0bb --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/PrivateGinModule.html @@ -0,0 +1,545 @@ + + + + + + +PrivateGinModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client +
+Class PrivateGinModule

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.PrivateGinModule
+
+
+
All Implemented Interfaces:
GinModule
+
+
+
+
public abstract class PrivateGinModule
extends java.lang.Object
implements GinModule
+ + +

+Gin counterpart of Guice's PrivateModule. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
PrivateGinModule() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(java.lang.Class<T> clazz) + +
+           
+protected + + + + +
+<T> GinLinkedBindingBuilder<T>
+
bind(Key<T> key) + +
+           
+protected + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(TypeLiteral<T> type) + +
+           
+protected  GinAnnotatedConstantBindingBuilderbindConstant() + +
+           
+protected  PrivateGinBinderbinder() + +
+          Returns the current binder.
+protected abstract  voidconfigure() + +
+          Creates bindings and other configurations private to this module.
+ voidconfigure(GinBinder binder) + +
+          Contributes bindings and other configurations for this module to binder.
+protected  GinAnnotatedElementBuilderexpose(java.lang.Class<?> type) + +
+          Makes a binding for type available to other modules and the injector.
+protected + + + + +
+<T> void
+
expose(Key<T> key) + +
+          Makes the binding for key available to other modules and the injector.
+protected  GinAnnotatedElementBuilderexpose(TypeLiteral<?> type) + +
+          Makes a binding for type available to other modules and the injector.
+protected  voidinstall(GinModule install) + +
+           
+protected  voidrequestStaticInjection(java.lang.Class<?>... types) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+PrivateGinModule

+
+public PrivateGinModule()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public void configure(GinBinder binder)
+
+
Description copied from interface: GinModule
+
Contributes bindings and other configurations for this module to binder. +

+

+
Specified by:
configure in interface GinModule
+
+
+
+
+
+
+ +

+configure

+
+protected abstract void configure()
+
+
Creates bindings and other configurations private to this module. Use expose() to make the bindings in this module available externally. +

+

+
+
+
+
+
+
+
+ +

+expose

+
+protected final <T> void expose(Key<T> key)
+
+
Makes the binding for key available to other modules and the injector. +

+

+
+
+
+
+
+
+
+ +

+expose

+
+protected final GinAnnotatedElementBuilder expose(java.lang.Class<?> type)
+
+
Makes a binding for type available to other modules and the injector. Use annotatedWith() to expose type + with a binding annotation. +

+

+
+
+
+
+
+
+
+ +

+expose

+
+protected final GinAnnotatedElementBuilder expose(TypeLiteral<?> type)
+
+
Makes a binding for type available to other modules and the injector. Use annotatedWith() to expose type + with a binding annotation. +

+

+
+
+
+
+
+
+
+ +

+binder

+
+protected final PrivateGinBinder binder()
+
+
Returns the current binder. +

+

+
+
+
+
+
+
+
+ +

+bind

+
+protected final <T> GinAnnotatedBindingBuilder<T> bind(java.lang.Class<T> clazz)
+
+
+
+
+
+
+
+
+
+ +

+bind

+
+protected final <T> GinAnnotatedBindingBuilder<T> bind(TypeLiteral<T> type)
+
+
+
+
+
+
+
+
+
+ +

+bind

+
+protected final <T> GinLinkedBindingBuilder<T> bind(Key<T> key)
+
+
+
+
+
+
+
+
+
+ +

+bindConstant

+
+protected final GinAnnotatedConstantBindingBuilder bindConstant()
+
+
+
+
+
+
+
+
+
+ +

+install

+
+protected final void install(GinModule install)
+
+
+
+
+
+
+
+
+
+ +

+requestStaticInjection

+
+protected void requestStaticInjection(java.lang.Class<?>... types)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/assistedinject/FactoryModule.html b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/FactoryModule.html new file mode 100644 index 0000000..0f9b12c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/FactoryModule.html @@ -0,0 +1,338 @@ + + + + + + +FactoryModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.assistedinject +
+Class FactoryModule<F>

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.assistedinject.FactoryModule<F>
+
+
+
All Implemented Interfaces:
GinModule
+
+
+
+
public class FactoryModule<F>
extends java.lang.Object
implements GinModule
+ + +

+For internal Gin use only. + + Fake module that transports assisted inject information from user-defined + modules to the bindings processor. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
FactoryModule(java.util.Map<Key<?>,TypeLiteral<?>> bindings, + Key<F> factoryType, + java.lang.Object source) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidconfigure(GinBinder binder) + +
+          Contributes bindings and other configurations for this module to binder.
+ java.util.Map<Key<?>,TypeLiteral<?>>getBindings() + +
+           
+ Key<F>getFactoryType() + +
+           
+ java.lang.StringgetSource() + +
+          Returns the source location of the factory module's declaration.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+FactoryModule

+
+public FactoryModule(java.util.Map<Key<?>,TypeLiteral<?>> bindings,
+                     Key<F> factoryType,
+                     java.lang.Object source)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getFactoryType

+
+public Key<F> getFactoryType()
+
+
+
+
+
+
+
+
+
+ +

+getBindings

+
+public java.util.Map<Key<?>,TypeLiteral<?>> getBindings()
+
+
+
+
+
+
+
+
+
+ +

+getSource

+
+public java.lang.String getSource()
+
+
Returns the source location of the factory module's declaration. +

+

+
+
+
+
+
+
+
+ +

+configure

+
+public void configure(GinBinder binder)
+
+
Description copied from interface: GinModule
+
Contributes bindings and other configurations for this module to binder. +

+

+
Specified by:
configure in interface GinModule
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/assistedinject/GinFactoryModuleBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/GinFactoryModuleBuilder.html new file mode 100644 index 0000000..926265f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/GinFactoryModuleBuilder.html @@ -0,0 +1,932 @@ + + + + + + +GinFactoryModuleBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.assistedinject +
+Class GinFactoryModuleBuilder

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder
+
+
+
+
public class GinFactoryModuleBuilder
extends java.lang.Object
+ + +

+Copied and modified from + FactoryModuleBuilder. Usage is + mostly the same, with the exception of forwarded bindings (see at the + bottom of this documentation). + + Provides a factory that combines the caller's arguments with + injector-supplied values to construct objects. + +

Defining a factory

+ Create an interface whose methods return the constructed type, or any of its + supertypes. The method's parameters are the arguments required to build the + constructed type. + +
public interface PaymentFactory {
+   Payment create(Date startDate, Money amount);
+ }
+ + You can name your factory methods whatever you like, such as create, + createPayment or newPayment. + +

Creating a type that accepts factory parameters

+ constructedType is a concrete class with an + @Inject-annotated constructor. In addition to injector- + supplied parameters, the constructor should have parameters that match each + of the factory method's parameters. Each factory-supplied parameter requires + an @Assisted annotation. This serves to document that the + parameter is not bound by your application's modules. + +
public class RealPayment implements Payment {
+   @Inject
+   public RealPayment(
+      CreditService creditService,
+      AuthService authService,
+      @Assisted Date startDate,
+      @Assisted Money amount) {
+     ...
+   }
+ }
+ +

Multiple factory methods for the same type

+ If the factory contains many methods that return the same type, you can + create multiple constructors in your concrete class, each constructor + marked with with @AssistedInject, in order to match the + different parameters types of the factory methods. + +
public interface PaymentFactory {
+    Payment create(Date startDate, Money amount);
+    Payment createWithoutDate(Money amount);
+ }
+
+ public class RealPayment implements Payment {
+  @AssistedInject
+   public RealPayment(
+      CreditService creditService,
+      AuthService authService,
+     @Assisted Date startDate,
+     @Assisted Money amount) {
+     ...
+   }
+
+  @AssistedInject
+   public RealPayment(
+      CreditService creditService,
+      AuthService authService,
+     @Assisted Money amount) {
+     ...
+   }
+ }
+ +

Configuring simple factories

+ In your module, install a GinFactoryModuleBuilder + that creates the factory: + +
install(new GinFactoryModuleBuilder()
+     .implement(Payment.class, RealPayment.class)
+     .build(PaymentFactory.class);
+ + As a side-effect of this binding, Gin will inject the factory to initialize + it for use. The factory cannot be used until the injector has been + initialized. + +

Using the factory

+ Inject your factory into your application classes. When you use the factory, + your arguments will be combined with values from the injector to construct + an instance. + +
public class PaymentAction {
+   @Inject private PaymentFactory paymentFactory;
+
+   public void doPayment(Money amount) {
+     Payment payment = paymentFactory.create(new Date(), amount);
+     payment.apply();
+   }
+ }
+ +

Making parameter types distinct

+ The types of the factory method's parameters must be distinct. To use + multiple parameters of the same type, use a named + @Assisted annotation to disambiguate the parameters. The + names must be applied to the factory method's parameters: + +
public interface PaymentFactory {
+   Payment create(
+       @Assisted("startDate") Date startDate,
+       @Assisted("dueDate") Date dueDate,
+       Money amount);
+ } 
+ + ...and to the concrete type's constructor parameters: + +
public class RealPayment implements Payment {
+   @Inject
+   public RealPayment(
+      CreditService creditService,
+      AuthService authService,
+      @Assisted("startDate") Date startDate,
+      @Assisted("dueDate") Date dueDate,
+      @Assisted Money amount) {
+     ...
+   }
+ }
+ +

Values are created by Gin

+ Returned factories use child injectors to create values. The values are + eligible for method interception. In addition, @Inject + members will be injected before they are returned. + +

More configuration options

+ In addition to simply specifying an implementation class for any returned + type, factories' return values can be automatic or can be configured to use + annotations: +

+ If you just want to return the types specified in the factory, do not + configure any implementations: + +

public interface FruitFactory {
+   Apple getApple(Color color);
+ }
+ ...
+ protected void configure() {
+   install(new GinFactoryModuleBuilder().build(FruitFactory.class));
+ }
+ + Note that any type returned by the factory in this manner needs to be an + implementation class. +

+ To return two different implementations for the same interface from your + factory, use binding annotations on your return types: + +

interface CarFactory {
+   @Named("fast") Car getFastCar(Color color);
+   @Named("clean") Car getCleanCar(Color color);
+ }
+ ...
+ protected void configure() {
+   install(new GinFactoryModuleBuilder()
+       .implement(Car.class, Names.named("fast"), Porsche.class)
+       .implement(Car.class, Names.named("clean"), Prius.class)
+       .build(CarFactory.class));
+ }
+

+ + In difference to regular Guice Assisted Inject, in Gin, + return types in your factory are not further resolved using + your regular injector configuration. This means that in the following + example you'll still get a Chicken and not a Rooster: + +

interface Animal {}
+ public class Chicken implements Animal {}
+ public class Rooster extends Chicken {}
+ interface AnimalFactory {
+   Animal getAnimal();
+ }
+ ...
+ protected void configure() {
+   bind(Chicken.class).to(Rooster.class);
+   install(new GinFactoryModuleBuilder()
+       .implement(Animal.class, Chicken.class)
+       .build(AnimalFactory.class));
+ }
+

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinFactoryModuleBuilder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ + + + + +
+<F> GinModule
+
build(java.lang.Class<F> factoryInterface) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<F> GinModule
+
build(Key<F> factoryInterface) + +
+           
+ + + + + +
+<F> GinModule
+
build(TypeLiteral<F> factoryInterface) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + java.lang.annotation.Annotation annotation, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + java.lang.annotation.Annotation annotation, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(java.lang.Class<T> source, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(Key<T> source, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(Key<T> source, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + java.lang.annotation.Annotation annotation, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + java.lang.annotation.Annotation annotation, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + java.lang.Class<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + +
+<T> GinFactoryModuleBuilder
+
implement(TypeLiteral<T> source, + TypeLiteral<? extends T> target) + +
+          See the factory configuration examples at GinFactoryModuleBuilder.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinFactoryModuleBuilder

+
+public GinFactoryModuleBuilder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             java.lang.annotation.Annotation annotation,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             java.lang.annotation.Annotation annotation,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             java.lang.annotation.Annotation annotation,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             java.lang.annotation.Annotation annotation,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(java.lang.Class<T> source,
+                                             java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(TypeLiteral<T> source,
+                                             java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(Key<T> source,
+                                             java.lang.Class<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+implement

+
+public <T> GinFactoryModuleBuilder implement(Key<T> source,
+                                             TypeLiteral<? extends T> target)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+build

+
+public <F> GinModule build(java.lang.Class<F> factoryInterface)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+build

+
+public <F> GinModule build(TypeLiteral<F> factoryInterface)
+
+
See the factory configuration examples at GinFactoryModuleBuilder. +

+

+
+
+
+
+ +

+build

+
+public <F> GinModule build(Key<F> factoryInterface)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-frame.html b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-frame.html new file mode 100644 index 0000000..e388a29 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +com.google.gwt.inject.client.assistedinject + + + + + + + + + + + +com.google.gwt.inject.client.assistedinject + + + + +
+Classes  + +
+FactoryModule +
+GinFactoryModuleBuilder
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-summary.html b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-summary.html new file mode 100644 index 0000000..1cce2ae --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-summary.html @@ -0,0 +1,160 @@ + + + + + + +com.google.gwt.inject.client.assistedinject + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.client.assistedinject +

+ + + + + + + + + + + + + +
+Class Summary
FactoryModule<F>For internal Gin use only.
GinFactoryModuleBuilderCopied and modified from + FactoryModuleBuilder.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-tree.html b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-tree.html new file mode 100644 index 0000000..599d848 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/assistedinject/package-tree.html @@ -0,0 +1,152 @@ + + + + + + +com.google.gwt.inject.client.assistedinject Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.client.assistedinject +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedBindingBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedBindingBuilder.html new file mode 100644 index 0000000..9b99a95 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedBindingBuilder.html @@ -0,0 +1,258 @@ + + + + + + +GinAnnotatedBindingBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinAnnotatedBindingBuilder<T>

+
+
All Superinterfaces:
GinLinkedBindingBuilder<T>, GinScopedBindingBuilder
+
+
+
+
public interface GinAnnotatedBindingBuilder<T>
extends GinLinkedBindingBuilder<T>
+ + +

+See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ GinLinkedBindingBuilder<T>annotatedWith(java.lang.annotation.Annotation annotation) + +
+          See the EDSL examples at GinBinder.
+ GinLinkedBindingBuilder<T>annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotation) + +
+          See the EDSL examples at GinBinder.
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder
to, to, to, toProvider, toProvider
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.client.binder.GinScopedBindingBuilder
asEagerSingleton, in
+  +

+ + + + + + + + +
+Method Detail
+ +

+annotatedWith

+
+GinLinkedBindingBuilder<T> annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+
+ +

+annotatedWith

+
+GinLinkedBindingBuilder<T> annotatedWith(java.lang.annotation.Annotation annotation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedConstantBindingBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedConstantBindingBuilder.html new file mode 100644 index 0000000..6f0b974 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedConstantBindingBuilder.html @@ -0,0 +1,231 @@ + + + + + + +GinAnnotatedConstantBindingBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinAnnotatedConstantBindingBuilder

+
+
+
public interface GinAnnotatedConstantBindingBuilder
+ + +

+See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ GinConstantBindingBuilderannotatedWith(java.lang.annotation.Annotation annotation) + +
+          See the EDSL examples at GinBinder.
+ GinConstantBindingBuilderannotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> aClass) + +
+          See the EDSL examples at GinBinder.
+  +

+ + + + + + + + +
+Method Detail
+ +

+annotatedWith

+
+GinConstantBindingBuilder annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> aClass)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+ +

+annotatedWith

+
+GinConstantBindingBuilder annotatedWith(java.lang.annotation.Annotation annotation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedElementBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedElementBuilder.html new file mode 100644 index 0000000..fc54d34 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinAnnotatedElementBuilder.html @@ -0,0 +1,237 @@ + + + + + + +GinAnnotatedElementBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinAnnotatedElementBuilder

+
+
All Known Implementing Classes:
AnnotatedElementBuilderAdapter
+
+
+
+
public interface GinAnnotatedElementBuilder
+ + +

+Builder returned from calls to expose, used to add an (optional) annotation + to the element that is being exposed. This is similar to + GinAnnotatedBindingBuilder but doesn't allow specifying a value. + See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ voidannotatedWith(java.lang.annotation.Annotation annotation) + +
+          See the EDSL examples at GinBinder.
+ voidannotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          See the EDSL examples at GinBinder.
+  +

+ + + + + + + + +
+Method Detail
+ +

+annotatedWith

+
+void annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+ +

+annotatedWith

+
+void annotatedWith(java.lang.annotation.Annotation annotation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinBinder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinBinder.html new file mode 100644 index 0000000..bdddeff --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinBinder.html @@ -0,0 +1,481 @@ + + + + + + +GinBinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinBinder

+
+
All Known Subinterfaces:
PrivateGinBinder
+
+
+
All Known Implementing Classes:
PrivateBinderAdapter
+
+
+
+
public interface GinBinder
+ + +

+Collects configuration information (primarily bindings) which will be + used to create a Ginjector. Gin provides this object to your + application's GinModule implementors so they may each contribute + their own bindings and other registrations. + +

The Gin Binding EDSL

+ + Gin uses an embedded domain-specific language, or EDSL, to help you + create bindings simply and readably. This approach is great for overall + usability, but it does come with a small cost: it is difficult to + learn how to use the Binding EDSL by reading + method-level javadocs. Instead, you should consult the series of + examples below. To save space, these examples omit the opening + binder, just as you will if your module extends + AbstractGinModule. + + The Gin EDSL is remarkably similar to the Guice EDSL, which has very similar + documentation in its Binder + +
+     bind(ServiceImpl.class);
+ + This statement does essentially nothing; it "binds the ServiceImpl + class to itself" and does not change Gin's default behavior. You may still + want to use this if you prefer your GinModule class to serve as an + explicit manifest for the services it provides. Also, in rare cases, + Gin may be unable to validate a binding at injector creation time unless it + is given explicitly. + +
+     bind(Service.class).to(ServiceImpl.class);
+ + Specifies that a request for a Service instance with no binding + annotations should be treated as if it were a request for a + ServiceImpl instance. This overrides the function of any + @ImplementedBy or @ProvidedBy + annotations found on Service, since Gin will have already + "moved on" to ServiceImpl before it reaches the point when it starts + looking for these annotations. + +
+     bind(Service.class).toProvider(ServiceProvider.class);
+ + In this example, ServiceProvider must extend or implement + Provider<Service>. This binding specifies that Gin should resolve + an unannotated injection request for Service by first resolving an + instance of ServiceProvider in the regular way, then calling + get() on the resulting Provider instance to obtain the + Service instance. + +

The Provider you use here does not have to be a "factory"; that + is, a provider which always creates each instance it provides. + However, this is generally a good practice to follow. You can then use + Gin's concept of scopes to guide when creation should happen + -- "letting Gin work for you". + +

+     bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);
+ + Like the previous example, but only applies to injection requests that use + the binding annotation @Red. If your module also includes bindings + for particular values of the @Red annotation (see below), + then this binding will serve as a "catch-all" for any values of @Red + that have no exact match in the bindings. + +
+     bind(ServiceImpl.class).in(Singleton.class);
+     // or, alternatively
+     bind(ServiceImpl.class).in(Scopes.SINGLETON);
+ + Either of these statements places the ServiceImpl class into + singleton scope. Gin will create only one instance of ServiceImpl + and will reuse it for all injection requests of this type. Note that it is + still possible to bind another instance of ServiceImpl if the second + binding is qualified by an annotation as in the previous example. Gin is + not overly concerned with preventing you from creating multiple + instances of your "singletons", only with enabling your application to + share only one instance if that's all you tell Gin you need. + +

Note: a scope specified in this way overrides any scope that + was specified with an annotation on the ServiceImpl class. + +

+     bind(new TypeLiteral<PaymentService<CreditCard>>() {})
+         .to(CreditCardPaymentService.class);
+ + This admittedly odd construct is the way to bind a parameterized type. It + tells Gin how to honor an injection request for an element of type + PaymentService<CreditCard>. The class + CreditCardPaymentService must implement the + PaymentService<CreditCard> interface. Gin cannot currently bind or + inject a generic type, such as Set<E>; all type parameters must be + fully specified. + +
+     bindConstant().annotatedWith(ServerHost.class).to(args[0]);
+ + Sets up a constant binding. Constant injections must always be annotated. + When a constant binding's value is a string, it is eligile for conversion to + all primitive types, to all enums, and to + class literals. Conversions for other types can be + configured using convertToTypes(). + +
+   @Color("red") Color red; // A member variable (field)
+    . . .
+     red = MyModule.class.getDeclaredField("red").getAnnotation(Color.class);
+     bind(Service.class).annotatedWith(red).to(RedService.class);
+ + If your binding annotation has parameters you can apply different bindings to + different specific values of your annotation. Getting your hands on the + right instance of the annotation is a bit of a pain -- one approach, shown + above, is to apply a prototype annotation to a field in your module class, so + that you can read this annotation instance and give it to Gin. + +
+     bind(Service.class)
+         .annotatedWith(Names.named("blue"))
+         .to(BlueService.class);
+ + Differentiating by names is a common enough use case that we provided a + standard annotation, @Named. Because of + Gin's library support, binding by name is quite easier than in the + arbitrary binding annotation case we just saw. However, remember that these + names will live in a single flat namespace with all the other names used in + your application. + +

The above list of examples is far from exhaustive. If you can think of + how the concepts of one example might coexist with the concepts from another, + you can most likely weave the two together. If the two concepts make no + sense with each other, you most likely won't be able to do it. In a few + cases Gin will let something bogus slip by, and will then inform you of + the problems at runtime, as soon as you try to create your Ginjector. + +

The other methods of GinBinder such as install(com.google.gwt.inject.client.GinModule) and + requestStaticInjection(java.lang.Class...) are not part of the Binding EDSL; + you can learn how to use these in the usual way, from the method + documentation. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(java.lang.Class<T> clazz) + +
+          See the EDSL examples at GinBinder
+ + + + + +
+<T> GinLinkedBindingBuilder<T>
+
bind(Key<T> key) + +
+          See the EDSL examples at GinBinder
+ + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(TypeLiteral<T> type) + +
+          See the EDSL examples at GinBinder
+ GinAnnotatedConstantBindingBuilderbindConstant() + +
+          See the EDSL examples at GinBinder
+ voidinstall(GinModule install) + +
+          Uses the given module to configure more bindings.
+ voidrequestStaticInjection(java.lang.Class<?>... types) + +
+          Upon successful creation, the Ginjector will inject static fields + and methods in the given classes.
+  +

+ + + + + + + + +
+Method Detail
+ +

+bind

+
+<T> GinAnnotatedBindingBuilder<T> bind(java.lang.Class<T> clazz)
+
+
See the EDSL examples at GinBinder +

+

+
+
+
+
+ +

+bind

+
+<T> GinAnnotatedBindingBuilder<T> bind(TypeLiteral<T> type)
+
+
See the EDSL examples at GinBinder +

+

+
+
+
+
+ +

+bind

+
+<T> GinLinkedBindingBuilder<T> bind(Key<T> key)
+
+
See the EDSL examples at GinBinder +

+

+
+
+
+
+ +

+bindConstant

+
+GinAnnotatedConstantBindingBuilder bindConstant()
+
+
See the EDSL examples at GinBinder +

+

+
+
+
+
+ +

+install

+
+void install(GinModule install)
+
+
Uses the given module to configure more bindings. +

+

+
+
+
+
+ +

+requestStaticInjection

+
+void requestStaticInjection(java.lang.Class<?>... types)
+
+
Upon successful creation, the Ginjector will inject static fields + and methods in the given classes. +

+

+
Parameters:
types - for which static members will be injected
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinConstantBindingBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinConstantBindingBuilder.html new file mode 100644 index 0000000..df36776 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinConstantBindingBuilder.html @@ -0,0 +1,408 @@ + + + + + + +GinConstantBindingBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinConstantBindingBuilder

+
+
+
public interface GinConstantBindingBuilder
+ + +

+Binds to a constant value. See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidto(boolean b) + +
+          Binds constant to the given value
+ voidto(char c) + +
+          Binds constant to the given value
+ voidto(java.lang.Class<?> aClass) + +
+          Binds constant to the given value
+ voidto(double v) + +
+          Binds constant to the given value
+ + + + + +
+<E extends java.lang.Enum<E>> +
+void
+
to(E e) + +
+          Binds constant to the given value
+ voidto(float v) + +
+          Binds constant to the given value
+ voidto(int i) + +
+          Binds constant to the given value
+ voidto(long l) + +
+          Binds constant to the given value
+ voidto(short i) + +
+          Binds constant to the given value
+ voidto(java.lang.String s) + +
+          Binds constant to the given value
+  +

+ + + + + + + + +
+Method Detail
+ +

+to

+
+void to(java.lang.String s)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(int i)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(long l)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(boolean b)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(double v)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(float v)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(short i)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(char c)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+void to(java.lang.Class<?> aClass)
+
+
Binds constant to the given value +

+

+
+
+
+
+ +

+to

+
+<E extends java.lang.Enum<E>> void to(E e)
+
+
Binds constant to the given value +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinLinkedBindingBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinLinkedBindingBuilder.html new file mode 100644 index 0000000..ef97408 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinLinkedBindingBuilder.html @@ -0,0 +1,369 @@ + + + + + + +GinLinkedBindingBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinLinkedBindingBuilder<T>

+
+
All Superinterfaces:
GinScopedBindingBuilder
+
+
+
All Known Subinterfaces:
GinAnnotatedBindingBuilder<T>
+
+
+
+
public interface GinLinkedBindingBuilder<T>
extends GinScopedBindingBuilder
+ + +

+See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ + + + + +
+<I extends T> +
+GinScopedBindingBuilder
+
to(java.lang.Class<I> implementation) + +
+          See the EDSL examples at GinBinder.
+ + + + + +
+<I extends T> +
+GinScopedBindingBuilder
+
to(Key<I> targetKey) + +
+          See the EDSL examples at GinBinder.
+ + + + + +
+<I extends T> +
+GinScopedBindingBuilder
+
to(TypeLiteral<I> implementation) + +
+          See the EDSL examples at GinBinder.
+ + + + + +
+<I extends javax.inject.Provider<? extends T>> +
+GinScopedBindingBuilder
+
toProvider(java.lang.Class<I> provider) + +
+          See the EDSL examples at GinBinder.
+ + + + + +
+<I extends javax.inject.Provider<? extends T>> +
+GinScopedBindingBuilder
+
toProvider(Key<I> providerKey) + +
+          See the EDSL examples at GinBinder.
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.client.binder.GinScopedBindingBuilder
asEagerSingleton, in
+  +

+ + + + + + + + +
+Method Detail
+ +

+to

+
+<I extends T> GinScopedBindingBuilder to(java.lang.Class<I> implementation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+
+ +

+to

+
+<I extends T> GinScopedBindingBuilder to(TypeLiteral<I> implementation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+
+ +

+to

+
+<I extends T> GinScopedBindingBuilder to(Key<I> targetKey)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+
+ +

+toProvider

+
+<I extends javax.inject.Provider<? extends T>> GinScopedBindingBuilder toProvider(java.lang.Class<I> provider)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+
+ +

+toProvider

+
+<I extends javax.inject.Provider<? extends T>> GinScopedBindingBuilder toProvider(Key<I> providerKey)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/GinScopedBindingBuilder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/GinScopedBindingBuilder.html new file mode 100644 index 0000000..b3ec4ba --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/GinScopedBindingBuilder.html @@ -0,0 +1,237 @@ + + + + + + +GinScopedBindingBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface GinScopedBindingBuilder

+
+
All Known Subinterfaces:
GinAnnotatedBindingBuilder<T>, GinLinkedBindingBuilder<T>
+
+
+
+
public interface GinScopedBindingBuilder
+ + +

+See the EDSL examples at GinBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ voidasEagerSingleton() + +
+          Instructs the Ginjector to eagerly + initialize this singleton-scoped binding upon creation.
+ voidin(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation) + +
+          See the EDSL examples at GinBinder.
+  +

+ + + + + + + + +
+Method Detail
+ +

+in

+
+void in(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
+
+
See the EDSL examples at GinBinder. +

+

+
+
+
+
+ +

+asEagerSingleton

+
+void asEagerSingleton()
+
+
Instructs the Ginjector to eagerly + initialize this singleton-scoped binding upon creation. Useful for application + initialization logic. See the EDSL examples at GinBinder. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/PrivateGinBinder.html b/trunk/javadoc/com/google/gwt/inject/client/binder/PrivateGinBinder.html new file mode 100644 index 0000000..28612d6 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/PrivateGinBinder.html @@ -0,0 +1,279 @@ + + + + + + +PrivateGinBinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.binder +
+Interface PrivateGinBinder

+
+
All Superinterfaces:
GinBinder
+
+
+
All Known Implementing Classes:
PrivateBinderAdapter
+
+
+
+
public interface PrivateGinBinder
extends GinBinder
+ + +

+Extension of GinBinder that allows for exposing keys. This is used when + creating private modules, where bindings would not be exposed by default. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ GinAnnotatedElementBuilderexpose(java.lang.Class<?> type) + +
+          Expose the given class.
+ voidexpose(Key<?> key) + +
+          Expose the given key.
+ GinAnnotatedElementBuilderexpose(TypeLiteral<?> type) + +
+          Expose the given type.
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.client.binder.GinBinder
bind, bind, bind, bindConstant, install, requestStaticInjection
+  +

+ + + + + + + + +
+Method Detail
+ +

+expose

+
+void expose(Key<?> key)
+
+
Expose the given key. +

+

+
+
+
+
+
+
+
+ +

+expose

+
+GinAnnotatedElementBuilder expose(java.lang.Class<?> type)
+
+
Expose the given class. Returns a GinAnnotatedElementBuilder which + can be used for adding an annotation. +

+

+
+
+
+
+
+
+
+ +

+expose

+
+GinAnnotatedElementBuilder expose(TypeLiteral<?> type)
+
+
Expose the given type. Returns a GinAnnotatedElementBuilder which + can be used for adding an annotation. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/package-frame.html b/trunk/javadoc/com/google/gwt/inject/client/binder/package-frame.html new file mode 100644 index 0000000..f18e92d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/package-frame.html @@ -0,0 +1,46 @@ + + + + + + +com.google.gwt.inject.client.binder + + + + + + + + + + + +com.google.gwt.inject.client.binder + + + + +
+Interfaces  + +
+GinAnnotatedBindingBuilder +
+GinAnnotatedConstantBindingBuilder +
+GinAnnotatedElementBuilder +
+GinBinder +
+GinConstantBindingBuilder +
+GinLinkedBindingBuilder +
+GinScopedBindingBuilder +
+PrivateGinBinder
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/package-summary.html b/trunk/javadoc/com/google/gwt/inject/client/binder/package-summary.html new file mode 100644 index 0000000..2f35acc --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/package-summary.html @@ -0,0 +1,185 @@ + + + + + + +com.google.gwt.inject.client.binder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.client.binder +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
GinAnnotatedBindingBuilder<T>See the EDSL examples at GinBinder.
GinAnnotatedConstantBindingBuilderSee the EDSL examples at GinBinder.
GinAnnotatedElementBuilderBuilder returned from calls to expose, used to add an (optional) annotation + to the element that is being exposed.
GinBinderCollects configuration information (primarily bindings) which will be + used to create a Ginjector.
GinConstantBindingBuilderBinds to a constant value.
GinLinkedBindingBuilder<T>See the EDSL examples at GinBinder.
GinScopedBindingBuilderSee the EDSL examples at GinBinder.
PrivateGinBinderExtension of GinBinder that allows for exposing keys.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/binder/package-tree.html b/trunk/javadoc/com/google/gwt/inject/client/binder/package-tree.html new file mode 100644 index 0000000..c1d0491 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/binder/package-tree.html @@ -0,0 +1,155 @@ + + + + + + +com.google.gwt.inject.client.binder Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.client.binder +

+
+
+
Package Hierarchies:
All Packages
+
+

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMapBinder.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMapBinder.html new file mode 100644 index 0000000..ee2b178 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMapBinder.html @@ -0,0 +1,574 @@ + + + + + + +GinMapBinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.multibindings +
+Class GinMapBinder<K,V>

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.multibindings.GinMapBinder<K,V>
+
+
+
Type Parameters:
K - type of key for map
V - type of value for map
+
+
+
public final class GinMapBinder<K,V>
extends java.lang.Object
+ + +

+A utility that mimics the behavior and API of Guice MapBinder for GIN. + +

Example usage: +

+   interface X {};
+
+   class X1Impl implements X {};
+
+   class X2Impl implements X {};
+
+   class X3Provider implements Provider<X> {};
+
+   GinMapBinder<String, X> mapBinder =
+       GinMapBinder.newMapBinder(binder(), String.class, X.class);
+   mapBinder.addBinding("id1").to(X1Impl.class);
+   mapBinder.addBinding("id2").to(X2Impl.class);
+   mapBinder.addBinding("id3").toProvider(X3Provider.class);
+ 
+ +

+ GIN supports instance binding for only limited set of types. To overcome this limitation, + GinMapBinder provides addBinding(Class) method so bindings can be added via a key + provider class that will instantiate the actual key during runtime. This alternative approach + is needed to used for all key types that cannot be bound via + GinConstantBindingBuilder: +

+   class Place {
+     public Place(String key) { ... }
+   }
+
+   class HomePlaceProvider implements Provider<Place> {
+     public Place get() {
+       return new Place("home");
+     }
+   }
+
+   class AboutPlaceProvider implements Provider<Place> {
+     public Place get() {
+       return new Place("about");
+     }
+   }
+
+   GinMapBinder<Place, X> mapBinder =
+       GinMapBinder.newMapBinder(binder(), Place.class, X.class);
+   mapBinder.addBinding(HomePlaceProvider.class).to(XImpl1.class);
+   mapBinder.addBinding(AboutPlaceProvider.class).to(XImpl2.class);
+ 
+

+

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ GinLinkedBindingBuilder<V>addBinding(java.lang.Class<? extends javax.inject.Provider<? extends K>> keyProvider) + +
+          Returns a binding builder used to add a new entry in the map using a key provider.
+ GinLinkedBindingBuilder<V>addBinding(K key) + +
+          Returns a binding builder used to add a new entry in the map.
+ GinLinkedBindingBuilder<V>addBinding(TypeLiteral<? extends javax.inject.Provider<? extends K>> keyProvider) + +
+          Returns a binding builder used to add a new entry in the map using a key provider.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + java.lang.Class<K> keyType, + java.lang.Class<V> valueType) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + java.lang.Class<K> keyType, + java.lang.Class<V> valueType, + java.lang.annotation.Annotation annotation) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + java.lang.Class<K> keyType, + java.lang.Class<V> valueType, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + TypeLiteral<K> keyType, + TypeLiteral<V> valueType) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + TypeLiteral<K> keyType, + TypeLiteral<V> valueType, + java.lang.annotation.Annotation annotation) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation.
+static + + + + +
+<K,V> GinMapBinder<K,V>
+
newMapBinder(GinBinder binder, + TypeLiteral<K> keyType, + TypeLiteral<V> valueType, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType.
+ GinMapBinder<K,V>permitDuplicates() + +
+          Configures the MapBinder to handle duplicate entries.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   TypeLiteral<K> keyType,
+                                                   TypeLiteral<V> valueType)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation. +

+

+
+
+
+
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   java.lang.Class<K> keyType,
+                                                   java.lang.Class<V> valueType)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation. +

+

+
+
+
+
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   TypeLiteral<K> keyType,
+                                                   TypeLiteral<V> valueType,
+                                                   java.lang.annotation.Annotation annotation)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation. +

+

+
+
+
+
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   java.lang.Class<K> keyType,
+                                                   java.lang.Class<V> valueType,
+                                                   java.lang.annotation.Annotation annotation)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation. +

+

+
+
+
+
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   TypeLiteral<K> keyType,
+                                                   TypeLiteral<V> valueType,
+                                                   java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType. +

+

+
+
+
+
+ +

+newMapBinder

+
+public static <K,V> GinMapBinder<K,V> newMapBinder(GinBinder binder,
+                                                   java.lang.Class<K> keyType,
+                                                   java.lang.Class<V> valueType,
+                                                   java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType. +

+

+
+
+
+
+ +

+permitDuplicates

+
+public GinMapBinder<K,V> permitDuplicates()
+
+
Configures the MapBinder to handle duplicate entries. +

+ When multiple equal keys are bound, the value that gets included in the map is arbitrary. +

+ In addition to the Map<K, V> and Map<K, Provider<V>> maps that are normally + bound, a Map<K, Set<V>> and Map<K, Set<Provider<V>>> are also bound, + which contain all values bound to each key. +

+ When multiple modules contribute elements to the map, this configuration option impacts all of + them. +

+

+ +
Returns:
this map binder
+
+
+
+ +

+addBinding

+
+public GinLinkedBindingBuilder<V> addBinding(K key)
+
+
Returns a binding builder used to add a new entry in the map. Each key must be distinct (and + non-null). Bound providers will be evaluated each time the map is injected. +

+ It is an error to call this method without also calling one of the to methods on the + returned binding builder. +

+ Scoping elements independently is supported. Use the in method to specify a binding + scope. +

+

+
+
+
+
+ +

+addBinding

+
+public GinLinkedBindingBuilder<V> addBinding(java.lang.Class<? extends javax.inject.Provider<? extends K>> keyProvider)
+
+
Returns a binding builder used to add a new entry in the map using a key provider. +

+ This API is not compatible with Guice however it is provided as GIN has limitation to bind + 'instances'. For that reason for all key types that are not defined in + GinConstantBindingBuilder needs to use a provider + class for each key together with this method. +

+

+
See Also:
addBinding(Object)
+
+
+
+ +

+addBinding

+
+public GinLinkedBindingBuilder<V> addBinding(TypeLiteral<? extends javax.inject.Provider<? extends K>> keyProvider)
+
+
Returns a binding builder used to add a new entry in the map using a key provider. +

+ This API is not compatible with Guice however it is provided as GIN has limitation to bind + 'instances'. For that reason for all key types that are not defined in + GinConstantBindingBuilder needs to use a provider + class for each key together with this method. +

+

+
See Also:
addBinding(Object)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMultibinder.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMultibinder.html new file mode 100644 index 0000000..8b48c22 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/GinMultibinder.html @@ -0,0 +1,508 @@ + + + + + + +GinMultibinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.multibindings +
+Class GinMultibinder<T>

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.multibindings.GinMultibinder<T>
+
+
+
Type Parameters:
T - type of value for Set
+
+
+
public final class GinMultibinder<T>
extends java.lang.Object
+ + +

+A utility that mimics the behavior and API of Guice Multibinder for GIN. + +

Example usage: +

+   interface X {};
+
+   class X1Impl implements X {};
+
+   class X2Impl implements X {};
+
+   class X3Provider implements Provider<X> { ... };
+
+   Set<X> multibinder = GinMultibinder.newSetBinder(binder(), X.class);
+   multibinder.addBinding().to(X1Impl.class);
+   multibinder.addBinding().to(X2Impl.class);
+   multibinder.addBinding().toProvier(X3Provider.class);
+ 
+

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinMultibinder(GinBinder ginBinder, + TypeLiteral<T> elementType, + Key<Provider<T>> keyForMultibinding) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ GinLinkedBindingBuilder<T>addBinding() + +
+          Returns a binding builder used to add a new element in the set.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + java.lang.Class<T> type) + +
+          Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + java.lang.Class<T> type, + java.lang.annotation.Annotation annotation) + +
+          Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + java.lang.Class<T> type, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          Returns a new multibinder that collects instances of type in a Set that is + itself bound with annotationType.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + TypeLiteral<T> type) + +
+          Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + TypeLiteral<T> type, + java.lang.annotation.Annotation annotation) + +
+          Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation.
+static + + + + +
+<T> GinMultibinder<T>
+
newSetBinder(GinBinder binder, + TypeLiteral<T> type, + java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotationType.
+ GinMultibinder<T>permitDuplicates() + +
+          Configures the bound set to silently discard duplicate elements.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinMultibinder

+
+public GinMultibinder(GinBinder ginBinder,
+                      TypeLiteral<T> elementType,
+                      Key<Provider<T>> keyForMultibinding)
+
+
+ + + + + + + + +
+Method Detail
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 TypeLiteral<T> type)
+
+
Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation. +

+

+
+
+
+
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 java.lang.Class<T> type)
+
+
Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation. +

+

+
+
+
+
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 TypeLiteral<T> type,
+                                                 java.lang.annotation.Annotation annotation)
+
+
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation. +

+

+
+
+
+
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 java.lang.Class<T> type,
+                                                 java.lang.annotation.Annotation annotation)
+
+
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation. +

+

+
+
+
+
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 TypeLiteral<T> type,
+                                                 java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotationType. +

+

+
+
+
+
+ +

+newSetBinder

+
+public static <T> GinMultibinder<T> newSetBinder(GinBinder binder,
+                                                 java.lang.Class<T> type,
+                                                 java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
Returns a new multibinder that collects instances of type in a Set that is + itself bound with annotationType. +

+

+
+
+
+
+ +

+permitDuplicates

+
+public GinMultibinder<T> permitDuplicates()
+
+
Configures the bound set to silently discard duplicate elements. When multiple equal values are + bound, the one that gets included is arbitrary. When multiple modules contribute elements to + the set, this configuration option impacts all of them. +

+

+
+
+
+
+ +

+addBinding

+
+public GinLinkedBindingBuilder<T> addBinding()
+
+
Returns a binding builder used to add a new element in the set. Each bound element must have a + distinct value. Bound providers will be evaluated each time the set is injected. +

+ It is an error to call this method without also calling one of the to methods on the + returned binding builder. +

+ Scoping elements independently is supported. Use the in method to specify a binding + scope. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/TypeLiterals.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/TypeLiterals.html new file mode 100644 index 0000000..07b21ce --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/TypeLiterals.html @@ -0,0 +1,303 @@ + + + + + + +TypeLiterals + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.client.multibindings +
+Class TypeLiterals

+
+java.lang.Object
+  extended by com.google.gwt.inject.client.multibindings.TypeLiterals
+
+
+
+
public class TypeLiterals
extends java.lang.Object
+ + +

+Utilities for creating TypeLiteral instances. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static + + + + +
+<K,V> TypeLiteral<java.util.Map<K,V>>
+
mapOf(TypeLiteral<K> key, + TypeLiteral<V> value) + +
+           
+static TypeLiteralnewParameterizedType(java.lang.Class<?> baseClass, + TypeLiteral<?>... literals) + +
+           
+static + + + + +
+<V> TypeLiteral<Provider<V>>
+
providerOf(TypeLiteral<V> type) + +
+           
+static + + + + +
+<V> TypeLiteral<java.util.Set<V>>
+
setOf(TypeLiteral<V> type) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+mapOf

+
+public static <K,V> TypeLiteral<java.util.Map<K,V>> mapOf(TypeLiteral<K> key,
+                                                          TypeLiteral<V> value)
+
+
+
+
+
+
+ +

+setOf

+
+public static <V> TypeLiteral<java.util.Set<V>> setOf(TypeLiteral<V> type)
+
+
+
+
+
+
+ +

+providerOf

+
+public static <V> TypeLiteral<Provider<V>> providerOf(TypeLiteral<V> type)
+
+
+
+
+
+
+ +

+newParameterizedType

+
+public static TypeLiteral newParameterizedType(java.lang.Class<?> baseClass,
+                                               TypeLiteral<?>... literals)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-frame.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-frame.html new file mode 100644 index 0000000..b6418e8 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +com.google.gwt.inject.client.multibindings + + + + + + + + + + + +com.google.gwt.inject.client.multibindings + + + + +
+Classes  + +
+GinMapBinder +
+GinMultibinder +
+TypeLiterals
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-summary.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-summary.html new file mode 100644 index 0000000..b58f1e1 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-summary.html @@ -0,0 +1,163 @@ + + + + + + +com.google.gwt.inject.client.multibindings + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.client.multibindings +

+ + + + + + + + + + + + + + + + + +
+Class Summary
GinMapBinder<K,V>A utility that mimics the behavior and API of Guice MapBinder for GIN.
GinMultibinder<T>A utility that mimics the behavior and API of Guice Multibinder for GIN.
TypeLiteralsUtilities for creating TypeLiteral instances.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-tree.html b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-tree.html new file mode 100644 index 0000000..904d9c3 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/multibindings/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +com.google.gwt.inject.client.multibindings Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.client.multibindings +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/package-frame.html b/trunk/javadoc/com/google/gwt/inject/client/package-frame.html new file mode 100644 index 0000000..6a33b10 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/package-frame.html @@ -0,0 +1,73 @@ + + + + + + +com.google.gwt.inject.client + + + + + + + + + + + +com.google.gwt.inject.client + + + + +
+Interfaces  + +
+AsyncProvider +
+Ginjector +
+GinModule
+ + + + + + +
+Classes  + +
+AbstractGinModule +
+PrivateGinModule
+ + + + + + +
+Exceptions  + +
+CreationException
+ + + + + + +
+Annotation Types  + +
+GinModules +
+NoGinModules
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/package-summary.html b/trunk/javadoc/com/google/gwt/inject/client/package-summary.html new file mode 100644 index 0000000..310aaf2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/package-summary.html @@ -0,0 +1,218 @@ + + + + + + +com.google.gwt.inject.client + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.client +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
AsyncProvider<T>An object capable of providing an instance of type T asynchronously + via AsyncCallback.
GinjectorWhere the GWT world stops and the GIN/Guice world begins.
GinModuleGIN counterpart of Guice's Module.
+  + +

+ + + + + + + + + + + + + +
+Class Summary
AbstractGinModuleA support class for GinModules which reduces repetition and results in + a more readable configuration.
PrivateGinModuleGin counterpart of Guice's PrivateModule.
+  + +

+ + + + + + + + + +
+Exception Summary
CreationExceptionException thrown by Gin at GWT runtime if an error occurs while creating a + requested object.
+  + +

+ + + + + + + + + + + + + +
+Annotation Types Summary
GinModulesAn annotation to put on @Ginjector subtypes to indicate which + GinModule implementations to use.
NoGinModulesGin warns in cases where no GinModule is registered with a Ginjector via a + @GinModules annotation.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/client/package-tree.html b/trunk/javadoc/com/google/gwt/inject/client/package-tree.html new file mode 100644 index 0000000..43346b0 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/client/package-tree.html @@ -0,0 +1,172 @@ + + + + + + +com.google.gwt.inject.client Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.client +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +

+Annotation Type Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/DoubleBindingChecker.html b/trunk/javadoc/com/google/gwt/inject/rebind/DoubleBindingChecker.html new file mode 100644 index 0000000..af2236f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/DoubleBindingChecker.html @@ -0,0 +1,278 @@ + + + + + + +DoubleBindingChecker + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class DoubleBindingChecker

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.DoubleBindingChecker
+
+
+
+
public class DoubleBindingChecker
extends java.lang.Object
+ + +

+Validate that a Ginjector hierarchy doesn't contain any duplicate bindings. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
DoubleBindingChecker(ErrorManager errorManager, + com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidcheckBindings(GinjectorBindings ginjector) + +
+           
+ voidcheckBindings(GinjectorBindings ginjector, + java.util.Map<Key<?>,GinjectorBindings> bindingSources) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DoubleBindingChecker

+
+@Inject
+public DoubleBindingChecker(ErrorManager errorManager,
+                                   com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+checkBindings

+
+public void checkBindings(GinjectorBindings ginjector)
+
+
+
+
+
+
+ +

+checkBindings

+
+public void checkBindings(GinjectorBindings ginjector,
+                          java.util.Map<Key<?>,GinjectorBindings> bindingSources)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/ErrorManager.html b/trunk/javadoc/com/google/gwt/inject/rebind/ErrorManager.html new file mode 100644 index 0000000..038501c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/ErrorManager.html @@ -0,0 +1,332 @@ + + + + + + +ErrorManager + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class ErrorManager

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.ErrorManager
+
+
+
+
public class ErrorManager
extends java.lang.Object
+ + +

+Manages errors that occur during the binding process. Keeps track of whether + we've found an error so we can eventually throw an + UnableToCompleteException. We do this instead of throwing + immediately so that we can find more than one error per compilation cycle. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
ErrorManager(com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidcheckForError() + +
+           
+ voidlogDoubleBind(Key<?> key, + Binding binding1, + GinjectorBindings ginjector1, + Binding binding2, + GinjectorBindings ginjector2) + +
+           
+ voidlogError(java.lang.String message, + java.lang.Object... args) + +
+           
+ voidlogError(java.lang.String message, + java.lang.Throwable t, + java.lang.Object... args) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ErrorManager

+
+@Inject
+public ErrorManager(com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+logDoubleBind

+
+public void logDoubleBind(Key<?> key,
+                          Binding binding1,
+                          GinjectorBindings ginjector1,
+                          Binding binding2,
+                          GinjectorBindings ginjector2)
+
+
+
+
+
+
+ +

+logError

+
+public void logError(java.lang.String message,
+                     java.lang.Object... args)
+
+
+
+
+
+
+ +

+logError

+
+public void logError(java.lang.String message,
+                     java.lang.Throwable t,
+                     java.lang.Object... args)
+
+
+
+
+
+
+ +

+checkForError

+
+public void checkForError()
+                   throws com.google.gwt.core.ext.UnableToCompleteException
+
+
+ +
Throws: +
com.google.gwt.core.ext.UnableToCompleteException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GinScope.html b/trunk/javadoc/com/google/gwt/inject/rebind/GinScope.html new file mode 100644 index 0000000..e9bc136 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GinScope.html @@ -0,0 +1,340 @@ + + + + + + +GinScope + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Enum GinScope

+
+java.lang.Object
+  extended by java.lang.Enum<GinScope>
+      extended by com.google.gwt.inject.rebind.GinScope
+
+
+
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<GinScope>
+
+
+
+
public enum GinScope
extends java.lang.Enum<GinScope>
+ + +

+Enum for scopes that GIN supports. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Enum Constant Summary
EAGER_SINGLETON + +
+           
NO_SCOPE + +
+           
SINGLETON + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static GinScopevalueOf(java.lang.String name) + +
+          Returns the enum constant of this type with the specified name.
+static GinScope[]values() + +
+          Returns an array containing the constants of this enum type, in +the order they are declared.
+ + + + + + + +
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
+ + + + + + + +
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Enum Constant Detail
+ +

+NO_SCOPE

+
+public static final GinScope NO_SCOPE
+
+
+
+
+
+ +

+SINGLETON

+
+public static final GinScope SINGLETON
+
+
+
+
+
+ +

+EAGER_SINGLETON

+
+public static final GinScope EAGER_SINGLETON
+
+
+
+
+ + + + + + + + +
+Method Detail
+ +

+values

+
+public static GinScope[] values()
+
+
Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
+for (GinScope c : GinScope.values())
+    System.out.println(c);
+
+

+

+ +
Returns:
an array containing the constants of this enum type, in +the order they are declared
+
+
+
+ +

+valueOf

+
+public static GinScope valueOf(java.lang.String name)
+
+
Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.) +

+

+
Parameters:
name - the name of the enum constant to be returned. +
Returns:
the enum constant with the specified name +
Throws: +
java.lang.IllegalArgumentException - if this enum type has no constant +with the specified name +
java.lang.NullPointerException - if the argument is null
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorBindings.html b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorBindings.html new file mode 100644 index 0000000..967a0bc --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorBindings.html @@ -0,0 +1,969 @@ + + + + + + +GinjectorBindings + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GinjectorBindings

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.GinjectorBindings
+
+
+
All Implemented Interfaces:
BindingIndex
+
+
+
+
public class GinjectorBindings
extends java.lang.Object
implements BindingIndex
+ + +

+Stores information that describes the bindings present in a given injector, + and the relationship to the other injectors in the hierarchy. This class is + used in two stages: + +

+ +

Each GinjectorBindings can have a parent ginjector, and any number of + child ginjectors. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinjectorBindings(NameGenerator nameGenerator, + com.google.gwt.core.ext.TreeLogger logger, + GuiceUtil guiceUtil, + java.lang.Class<? extends Ginjector> ginjectorInterface, + javax.inject.Provider<GinjectorBindings> ginjectorBindingsProvider, + MemberCollector collector, + ErrorManager errorManager, + BindingResolver bindingResolver) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddBinding(Key<?> key, + Binding binding) + +
+           
+ voidaddDependencies(java.util.Collection<Dependency> dependencies) + +
+           
+ voidaddDependency(Dependency dependency) + +
+           
+ voidaddFactoryModule(FactoryModule<?> install) + +
+           
+ voidaddPin(Key<?> key) + +
+           
+ GinjectorBindingscreateChildGinjectorBindings(java.lang.Class<?> module) + +
+          Create a new GinjectorBindings that collects bindings for an injector that is the + child of this GinjectorBindings.
+ GinScopedetermineScope(Key<?> key) + +
+           
+ BindinggetBinding(Key<?> key) + +
+           
+ java.lang.Iterable<java.util.Map.Entry<Key<?>,Binding>>getBindings() + +
+           
+ java.lang.Iterable<Key<?>>getBoundKeys() + +
+           
+ java.lang.Iterable<GinjectorBindings>getChildren() + +
+           
+ GinjectorBindingsgetChildWhichBindsLocally(Key<?> key) + +
+          Returns the child injector which binds the given key.
+ java.lang.Iterable<Dependency>getDependencies() + +
+           
+ java.lang.Iterable<FactoryModule<?>>getFactoryModules() + +
+           
+ TypeLiteral<?>getGinjectorInterface() + +
+           
+ java.lang.Iterable<TypeLiteral<?>>getMemberInjectRequests() + +
+           
+ java.lang.Class<?>getModule() + +
+           
+ java.lang.StringgetModuleName() + +
+           
+ NameGeneratorgetNameGenerator() + +
+           
+ GinjectorBindingsgetParent() + +
+           
+ java.util.Collection<java.lang.Class<?>>getStaticInjectionRequests() + +
+           
+ booleanhasEagerSingletonBindingInSubtree() + +
+          Returns true if any binding in this injector or in one of its + descendants is an eager singleton binding.
+ booleanhasStaticInjectionRequestInSubtree() + +
+          Returns true if this injector or any of its children has a static + injection request.
+ booleanisBound(Key<?> key) + +
+          Returns true if the passed key is bound in the Ginjector.
+ booleanisBoundLocallyInChild(Key<?> key) + +
+           
+ booleanisPinned(Key<?> key) + +
+           
+ voidresolveBindings() + +
+           
+ voidsetModule(java.lang.Class<?> module) + +
+           
+ voidsetParent(GinjectorBindings parent) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinjectorBindings

+
+@Inject
+public GinjectorBindings(NameGenerator nameGenerator,
+                                com.google.gwt.core.ext.TreeLogger logger,
+                                GuiceUtil guiceUtil,
+                                java.lang.Class<? extends Ginjector> ginjectorInterface,
+                                javax.inject.Provider<GinjectorBindings> ginjectorBindingsProvider,
+                                MemberCollector collector,
+                                ErrorManager errorManager,
+                                BindingResolver bindingResolver)
+
+
+ + + + + + + + +
+Method Detail
+ +

+createChildGinjectorBindings

+
+public GinjectorBindings createChildGinjectorBindings(java.lang.Class<?> module)
+
+
Create a new GinjectorBindings that collects bindings for an injector that is the + child of this GinjectorBindings. +

+

+
+
+
+
Parameters:
module - the module the ginjector is being created for +
Returns:
the child GinjectorBindings
+
+
+
+ +

+resolveBindings

+
+public void resolveBindings()
+                     throws com.google.gwt.core.ext.UnableToCompleteException
+
+
+
+
+
+ +
Throws: +
com.google.gwt.core.ext.UnableToCompleteException
+
+
+
+ +

+getDependencies

+
+public java.lang.Iterable<Dependency> getDependencies()
+
+
+
+
+
+
+
+
+
+ +

+getBoundKeys

+
+public java.lang.Iterable<Key<?>> getBoundKeys()
+
+
+
+
+
+
+
+
+
+ +

+getBindings

+
+public java.lang.Iterable<java.util.Map.Entry<Key<?>,Binding>> getBindings()
+
+
+
+
+
+
+
+
+
+ +

+getGinjectorInterface

+
+public TypeLiteral<?> getGinjectorInterface()
+
+
+
+
+
+
+
+
+
+ +

+getStaticInjectionRequests

+
+public java.util.Collection<java.lang.Class<?>> getStaticInjectionRequests()
+
+
+
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.lang.Iterable<TypeLiteral<?>> getMemberInjectRequests()
+
+
+
+
+
+
+
+
+
+ +

+hasEagerSingletonBindingInSubtree

+
+public boolean hasEagerSingletonBindingInSubtree()
+
+
Returns true if any binding in this injector or in one of its + descendants is an eager singleton binding. + +

Note: this method is Omega(n) in the height of the injector tree, and + invoking it on every entry in the injector tree is O(n^2). The latter cost + could be reduced to O(n) by caching the return value. +

+

+
+
+
+
+
+
+
+ +

+hasStaticInjectionRequestInSubtree

+
+public boolean hasStaticInjectionRequestInSubtree()
+
+
Returns true if this injector or any of its children has a static + injection request. + +

Note: this method is Omega(n) in the height of the injector tree, and + invoking it on every entry in the injector tree is O(n^2). The latter cost + could be reduced to O(n) by caching the return value. +

+

+
+
+
+
+
+
+
+ +

+getParent

+
+public GinjectorBindings getParent()
+
+
+
+
+
+
+
+
+
+ +

+setParent

+
+public void setParent(GinjectorBindings parent)
+
+
+
+
+
+
+
+
+
+ +

+getModule

+
+public java.lang.Class<?> getModule()
+
+
+
+
+
+
+
+
+
+ +

+getModuleName

+
+public java.lang.String getModuleName()
+
+
+
+
+
+
+
+
+
+ +

+setModule

+
+public void setModule(java.lang.Class<?> module)
+
+
+
+
+
+
+
+
+
+ +

+getChildren

+
+public java.lang.Iterable<GinjectorBindings> getChildren()
+
+
+
+
+
+
+
+
+
+ +

+getFactoryModules

+
+public java.lang.Iterable<FactoryModule<?>> getFactoryModules()
+
+
+
+
+
+
+
+
+
+ +

+getNameGenerator

+
+public NameGenerator getNameGenerator()
+
+
+
+
+
+
+
+
+
+ +

+determineScope

+
+public GinScope determineScope(Key<?> key)
+
+
+
+
+
+
+
+
+
+ +

+isBound

+
+public boolean isBound(Key<?> key)
+
+
Description copied from interface: BindingIndex
+
Returns true if the passed key is bound in the Ginjector. +

+ Note: This only works reliably in the source-generation phase of the + ginjector generation since during the binding processing phase not all + keys are guaranteed to have been looked at. +

+

+
Specified by:
isBound in interface BindingIndex
+
+
+
Parameters:
key - key to be checked +
Returns:
true if key is bound.
+
+
+
+ +

+getBinding

+
+public Binding getBinding(Key<?> key)
+
+
+
+
+
+
+
+
+
+ +

+addDependency

+
+public void addDependency(Dependency dependency)
+
+
+
+
+
+
+
+
+
+ +

+addDependencies

+
+public void addDependencies(java.util.Collection<Dependency> dependencies)
+
+
+
+
+
+
+
+
+
+ +

+addBinding

+
+public void addBinding(Key<?> key,
+                       Binding binding)
+
+
+
+
+
+
+
+
+
+ +

+addPin

+
+public void addPin(Key<?> key)
+
+
+
+
+
+
+
+
+
+ +

+isPinned

+
+public boolean isPinned(Key<?> key)
+
+
+
+
+
+
+
+
+
+ +

+isBoundLocallyInChild

+
+public boolean isBoundLocallyInChild(Key<?> key)
+
+
+
+
+
+
+
+
+
+ +

+getChildWhichBindsLocally

+
+public GinjectorBindings getChildWhichBindsLocally(Key<?> key)
+
+
Returns the child injector which binds the given key. If no child binds the key, returns + null. +

+

+
+
+
+
+
+
+
+ +

+addFactoryModule

+
+public void addFactoryModule(FactoryModule<?> install)
+
+
+
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorGenerator.html b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorGenerator.html new file mode 100644 index 0000000..d72b92a --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorGenerator.html @@ -0,0 +1,274 @@ + + + + + + +GinjectorGenerator + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GinjectorGenerator

+
+java.lang.Object
+  extended by com.google.gwt.core.ext.Generator
+      extended by com.google.gwt.inject.rebind.GinjectorGenerator
+
+
+
+
public class GinjectorGenerator
extends com.google.gwt.core.ext.Generator
+ + +

+Generator for implementations of Ginjector. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinjectorGenerator() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Stringgenerate(com.google.gwt.core.ext.TreeLogger logger, + com.google.gwt.core.ext.GeneratorContext context, + java.lang.String typeName) + +
+           
+ + + + + + + +
Methods inherited from class com.google.gwt.core.ext.Generator
contentDependsOnProperties, contentDependsOnTypes, escape, getAccessedPropertyNames
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinjectorGenerator

+
+public GinjectorGenerator()
+
+
+ + + + + + + + +
+Method Detail
+ +

+generate

+
+public java.lang.String generate(com.google.gwt.core.ext.TreeLogger logger,
+                                 com.google.gwt.core.ext.GeneratorContext context,
+                                 java.lang.String typeName)
+                          throws com.google.gwt.core.ext.UnableToCompleteException
+
+
+
Specified by:
generate in class com.google.gwt.core.ext.Generator
+
+
+ +
Throws: +
com.google.gwt.core.ext.UnableToCompleteException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorInterfaceType.html b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorInterfaceType.html new file mode 100644 index 0000000..f87bf2b --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorInterfaceType.html @@ -0,0 +1,172 @@ + + + + + + +GinjectorInterfaceType + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Annotation Type GinjectorInterfaceType

+
+
+
@Retention(value=RUNTIME)
+@Target(value={PARAMETER,METHOD})
+public @interface GinjectorInterfaceType
+ + +

+A binding annotation to be applied to a Class for + the type of the Ginjector interface being generated. +

+ +

+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorNameGenerator.html b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorNameGenerator.html new file mode 100644 index 0000000..0b0287a --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GinjectorNameGenerator.html @@ -0,0 +1,262 @@ + + + + + + +GinjectorNameGenerator + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GinjectorNameGenerator

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.GinjectorNameGenerator
+
+
+
+
public class GinjectorNameGenerator
extends java.lang.Object
+ + +

+Manages class and field names for GinjectorBindings. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetCanonicalClassName(GinjectorBindings bindings) + +
+           
+ java.lang.StringgetClassName(GinjectorBindings bindings) + +
+           
+ java.lang.StringgetFieldName(GinjectorBindings bindings) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+getClassName

+
+public java.lang.String getClassName(GinjectorBindings bindings)
+
+
+ +
Returns:
the class name to use for the given ginjector
+
+
+
+ +

+getCanonicalClassName

+
+public java.lang.String getCanonicalClassName(GinjectorBindings bindings)
+
+
+ +
Returns:
the canonical class name (including package) to use for the given ginjector
+
+
+
+ +

+getFieldName

+
+public java.lang.String getFieldName(GinjectorBindings bindings)
+
+
+ +
Returns:
the field name to use for the given ginjector
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitor.html b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitor.html new file mode 100644 index 0000000..1bab9ff --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitor.html @@ -0,0 +1,474 @@ + + + + + + +GuiceBindingVisitor + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GuiceBindingVisitor<T>

+
+java.lang.Object
+  extended by com.google.inject.spi.DefaultBindingTargetVisitor<T,java.lang.Void>
+      extended by com.google.gwt.inject.rebind.GuiceBindingVisitor<T>
+
+
+
All Implemented Interfaces:
BindingScopingVisitor<java.lang.Void>, BindingTargetVisitor<T,java.lang.Void>
+
+
+
+
public class GuiceBindingVisitor<T>
extends DefaultBindingTargetVisitor<T,java.lang.Void>
implements BindingScopingVisitor<java.lang.Void>
+ + +

+Gathers information about Guice Bindings and adds the information to a GinjectorBindings. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GuiceBindingVisitor(Key<T> targetKey, + java.util.List<Message> messages, + GinjectorBindings bindingsCollection, + BindingFactory bindingFactory) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Voidvisit(InstanceBinding<? extends T> instanceBinding) + +
+           
+ java.lang.Voidvisit(LinkedKeyBinding<? extends T> linkedKeyBinding) + +
+           
+ java.lang.Voidvisit(ProviderInstanceBinding<? extends T> providerInstanceBinding) + +
+           
+ java.lang.Voidvisit(ProviderKeyBinding<? extends T> providerKeyBinding) + +
+           
+ java.lang.Voidvisit(UntargettedBinding<? extends T> untargettedBinding) + +
+           
+ java.lang.VoidvisitEagerSingleton() + +
+           
+ java.lang.VoidvisitNoScoping() + +
+           
+protected  java.lang.VoidvisitOther(Binding<? extends T> binding) + +
+           
+ java.lang.VoidvisitScope(Scope scope) + +
+           
+ java.lang.VoidvisitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation) + +
+           
+ + + + + + + +
Methods inherited from class com.google.inject.spi.DefaultBindingTargetVisitor
visit, visit, visit, visit
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GuiceBindingVisitor

+
+public GuiceBindingVisitor(Key<T> targetKey,
+                           java.util.List<Message> messages,
+                           GinjectorBindings bindingsCollection,
+                           BindingFactory bindingFactory)
+
+
+ + + + + + + + +
+Method Detail
+ +

+visit

+
+public java.lang.Void visit(ProviderKeyBinding<? extends T> providerKeyBinding)
+
+
+
Specified by:
visit in interface BindingTargetVisitor<T,java.lang.Void>
Overrides:
visit in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(ProviderInstanceBinding<? extends T> providerInstanceBinding)
+
+
+
Specified by:
visit in interface BindingTargetVisitor<T,java.lang.Void>
Overrides:
visit in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(LinkedKeyBinding<? extends T> linkedKeyBinding)
+
+
+
Specified by:
visit in interface BindingTargetVisitor<T,java.lang.Void>
Overrides:
visit in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(InstanceBinding<? extends T> instanceBinding)
+
+
+
Specified by:
visit in interface BindingTargetVisitor<T,java.lang.Void>
Overrides:
visit in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(UntargettedBinding<? extends T> untargettedBinding)
+
+
+
Specified by:
visit in interface BindingTargetVisitor<T,java.lang.Void>
Overrides:
visit in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visitOther

+
+protected java.lang.Void visitOther(Binding<? extends T> binding)
+
+
+
Overrides:
visitOther in class DefaultBindingTargetVisitor<T,java.lang.Void>
+
+
+
+
+
+
+ +

+visitEagerSingleton

+
+public java.lang.Void visitEagerSingleton()
+
+
+
Specified by:
visitEagerSingleton in interface BindingScopingVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visitScope

+
+public java.lang.Void visitScope(Scope scope)
+
+
+
Specified by:
visitScope in interface BindingScopingVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visitScopeAnnotation

+
+public java.lang.Void visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
+
+
+
Specified by:
visitScopeAnnotation in interface BindingScopingVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visitNoScoping

+
+public java.lang.Void visitNoScoping()
+
+
+
Specified by:
visitNoScoping in interface BindingScopingVisitor<java.lang.Void>
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitorFactory.html b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitorFactory.html new file mode 100644 index 0000000..9350f69 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceBindingVisitorFactory.html @@ -0,0 +1,229 @@ + + + + + + +GuiceBindingVisitorFactory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GuiceBindingVisitorFactory

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.GuiceBindingVisitorFactory
+
+
+
+
public class GuiceBindingVisitorFactory
extends java.lang.Object
+ + +

+Factory for creating GuiceBindingVisitors. We can't use assisted + injection to create this, because one of the arguments is a Key, which makes + Guice unhappy. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GuiceBindingVisitorFactory(BindingFactory bindingFactory) + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GuiceBindingVisitorFactory

+
+@Inject
+public GuiceBindingVisitorFactory(BindingFactory bindingFactory)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.GuiceElementVisitorFactory.html b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.GuiceElementVisitorFactory.html new file mode 100644 index 0000000..68a7871 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.GuiceElementVisitorFactory.html @@ -0,0 +1,211 @@ + + + + + + +GuiceElementVisitor.GuiceElementVisitorFactory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Interface GuiceElementVisitor.GuiceElementVisitorFactory

+
+
Enclosing class:
GuiceElementVisitor
+
+
+
+
public static interface GuiceElementVisitor.GuiceElementVisitorFactory
+ + +

+Interface for use with Assisted Injection for creating GuiceElementVisitor +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ GuiceElementVisitorcreate(GinjectorBindings bindingsCollection) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+GuiceElementVisitor create(GinjectorBindings bindingsCollection)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.html b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.html new file mode 100644 index 0000000..6100237 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/GuiceElementVisitor.html @@ -0,0 +1,460 @@ + + + + + + +GuiceElementVisitor + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Class GuiceElementVisitor

+
+java.lang.Object
+  extended by com.google.inject.spi.DefaultElementVisitor<java.lang.Void>
+      extended by com.google.gwt.inject.rebind.GuiceElementVisitor
+
+
+
All Implemented Interfaces:
ElementVisitor<java.lang.Void>
+
+
+
+
public class GuiceElementVisitor
extends DefaultElementVisitor<java.lang.Void>
+ + +

+Gathers elements and adds them to a GinjectorBindings. +

+ +

+


+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static interfaceGuiceElementVisitor.GuiceElementVisitorFactory + +
+          Interface for use with Assisted Injection for creating GuiceElementVisitor
+  + + + + + + + + + + +
+Constructor Summary
GuiceElementVisitor(com.google.gwt.core.ext.TreeLogger logger, + GuiceElementVisitor.GuiceElementVisitorFactory guiceElementVisitorFactory, + GuiceBindingVisitorFactory bindingVisitorFactory, + ErrorManager errorManager, + GinjectorBindings bindings, + BindingFactory bindingFactory) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.List<Message>getMessages() + +
+           
+ + + + + +
+<T> java.lang.Void
+
visit(Binding<T> command) + +
+           
+ java.lang.Voidvisit(Message message) + +
+           
+ java.lang.Voidvisit(PrivateElements privateElements) + +
+           
+ + + + + +
+<T> java.lang.Void
+
visit(ProviderLookup<T> providerLookup) + +
+           
+ java.lang.Voidvisit(StaticInjectionRequest staticInjectionRequest) + +
+           
+ voidvisitElementsAndReportErrors(java.util.List<Element> elements) + +
+           
+protected  java.lang.VoidvisitOther(Element element) + +
+           
+ + + + + + + +
Methods inherited from class com.google.inject.spi.DefaultElementVisitor
visit, visit, visit, visit, visit, visit, visit, visit
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GuiceElementVisitor

+
+@Inject
+public GuiceElementVisitor(com.google.gwt.core.ext.TreeLogger logger,
+                                  GuiceElementVisitor.GuiceElementVisitorFactory guiceElementVisitorFactory,
+                                  GuiceBindingVisitorFactory bindingVisitorFactory,
+                                  ErrorManager errorManager,
+                                  GinjectorBindings bindings,
+                                  BindingFactory bindingFactory)
+
+
+ + + + + + + + +
+Method Detail
+ +

+visitElementsAndReportErrors

+
+public void visitElementsAndReportErrors(java.util.List<Element> elements)
+
+
+
+
+
+
+ +

+visit

+
+public <T> java.lang.Void visit(Binding<T> command)
+
+
+
Specified by:
visit in interface ElementVisitor<java.lang.Void>
Overrides:
visit in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(Message message)
+
+
+
Specified by:
visit in interface ElementVisitor<java.lang.Void>
Overrides:
visit in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public <T> java.lang.Void visit(ProviderLookup<T> providerLookup)
+
+
+
Specified by:
visit in interface ElementVisitor<java.lang.Void>
Overrides:
visit in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visitOther

+
+protected java.lang.Void visitOther(Element element)
+
+
+
Overrides:
visitOther in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(StaticInjectionRequest staticInjectionRequest)
+
+
+
Specified by:
visit in interface ElementVisitor<java.lang.Void>
Overrides:
visit in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+visit

+
+public java.lang.Void visit(PrivateElements privateElements)
+
+
+
Specified by:
visit in interface ElementVisitor<java.lang.Void>
Overrides:
visit in class DefaultElementVisitor<java.lang.Void>
+
+
+
+
+
+
+ +

+getMessages

+
+public java.util.List<Message> getMessages()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/ModuleClasses.html b/trunk/javadoc/com/google/gwt/inject/rebind/ModuleClasses.html new file mode 100644 index 0000000..5bccd3e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/ModuleClasses.html @@ -0,0 +1,172 @@ + + + + + + +ModuleClasses + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Annotation Type ModuleClasses

+
+
+
@Retention(value=RUNTIME)
+@Target(value={PARAMETER,METHOD})
+public @interface ModuleClasses
+ + +

+A binding annotation to be applied to a Collection containing all GinModule + classes used to configure the current Ginjector. +

+ +

+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/RootBindings.html b/trunk/javadoc/com/google/gwt/inject/rebind/RootBindings.html new file mode 100644 index 0000000..eefbff1 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/RootBindings.html @@ -0,0 +1,172 @@ + + + + + + +RootBindings + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind +
+Annotation Type RootBindings

+
+
+
@Retention(value=RUNTIME)
+@Target(value=PARAMETER)
+public @interface RootBindings
+ + +

+A binding annotation to be applied to a GinjectorBindings for + the top level bindings. +

+ +

+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/AnnotatedElementBuilderAdapter.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/AnnotatedElementBuilderAdapter.html new file mode 100644 index 0000000..c32c0f2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/AnnotatedElementBuilderAdapter.html @@ -0,0 +1,251 @@ + + + + + + +AnnotatedElementBuilderAdapter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.adapter +
+Class AnnotatedElementBuilderAdapter

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.adapter.AnnotatedElementBuilderAdapter
+
+
+
All Implemented Interfaces:
GinAnnotatedElementBuilder
+
+
+
+
public class AnnotatedElementBuilderAdapter
extends java.lang.Object
implements GinAnnotatedElementBuilder
+ + +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ voidannotatedWith(java.lang.annotation.Annotation annotation) + +
+          See the EDSL examples at GinBinder.
+ voidannotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) + +
+          See the EDSL examples at GinBinder.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+annotatedWith

+
+public void annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
+
+
Description copied from interface: GinAnnotatedElementBuilder
+
See the EDSL examples at GinBinder. +

+

+
Specified by:
annotatedWith in interface GinAnnotatedElementBuilder
+
+
+
+
+
+
+ +

+annotatedWith

+
+public void annotatedWith(java.lang.annotation.Annotation annotation)
+
+
Description copied from interface: GinAnnotatedElementBuilder
+
See the EDSL examples at GinBinder. +

+

+
Specified by:
annotatedWith in interface GinAnnotatedElementBuilder
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GinModuleAdapter.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GinModuleAdapter.html new file mode 100644 index 0000000..d70a266 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GinModuleAdapter.html @@ -0,0 +1,338 @@ + + + + + + +GinModuleAdapter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.adapter +
+Class GinModuleAdapter

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.adapter.GinModuleAdapter
+
+
+
All Implemented Interfaces:
Module
+
+
+
+
public final class GinModuleAdapter
extends java.lang.Object
implements Module
+ + +

+Makes a GinModule available as a Module. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
GinModuleAdapter(GinModule ginModule) + +
+           
GinModuleAdapter(GinModule ginModule, + GinjectorBindings bindings) + +
+           
GinModuleAdapter(GinModule ginModule, + GinjectorBindings bindings, + boolean hideChildModules) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidconfigure(Binder binder) + +
+           
+ booleanequals(java.lang.Object obj) + +
+           
+ inthashCode() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinModuleAdapter

+
+public GinModuleAdapter(GinModule ginModule)
+
+
+
+ +

+GinModuleAdapter

+
+public GinModuleAdapter(GinModule ginModule,
+                        GinjectorBindings bindings)
+
+
+
+ +

+GinModuleAdapter

+
+public GinModuleAdapter(GinModule ginModule,
+                        GinjectorBindings bindings,
+                        boolean hideChildModules)
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public void configure(Binder binder)
+
+
+
Specified by:
configure in interface Module
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
Overrides:
equals in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GwtDotCreateProvider.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GwtDotCreateProvider.html new file mode 100644 index 0000000..43174e9 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/GwtDotCreateProvider.html @@ -0,0 +1,239 @@ + + + + + + +GwtDotCreateProvider + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.adapter +
+Class GwtDotCreateProvider<T>

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.adapter.GwtDotCreateProvider<T>
+
+
+
All Implemented Interfaces:
javax.inject.Provider<T>
+
+
+
+
public class GwtDotCreateProvider<T>
extends java.lang.Object
implements Provider<T>
+ + +

+A dummy provider to register for cases like + bind().in(scope) (where there is no target key). + Since Gin will use GWT.create(), we need to + make Guice think that something is bound. + + This class is public so that BindingProcessor + can detect this. + + Some details are in + issue 22. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ Tget() + +
+          Provides an instance of T.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+get

+
+public T get()
+
+
Description copied from interface: com.google.inject.Provider
+
Provides an instance of T. Must never return null. +

+

+
Specified by:
get in interface javax.inject.Provider<T>
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateBinderAdapter.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateBinderAdapter.html new file mode 100644 index 0000000..cdffa66 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateBinderAdapter.html @@ -0,0 +1,465 @@ + + + + + + +PrivateBinderAdapter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.adapter +
+Class PrivateBinderAdapter

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.adapter.PrivateBinderAdapter
+
+
+
All Implemented Interfaces:
GinBinder, PrivateGinBinder
+
+
+
+
public class PrivateBinderAdapter
extends java.lang.Object
implements PrivateGinBinder
+ + +

+Provides the PrivateGinBinder interface and adapts it to a regular Guice + PrivateBinder. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(java.lang.Class<T> clazz) + +
+          See the EDSL examples at GinBinder
+ + + + + +
+<T> GinLinkedBindingBuilder<T>
+
bind(Key<T> key) + +
+          See the EDSL examples at GinBinder
+ + + + + +
+<T> GinAnnotatedBindingBuilder<T>
+
bind(TypeLiteral<T> clazz) + +
+          See the EDSL examples at GinBinder
+ GinAnnotatedConstantBindingBuilderbindConstant() + +
+          See the EDSL examples at GinBinder
+ GinAnnotatedElementBuilderexpose(java.lang.Class<?> type) + +
+          Expose the given class.
+ voidexpose(Key<?> key) + +
+          Expose the given key.
+ GinAnnotatedElementBuilderexpose(TypeLiteral<?> type) + +
+          Expose the given type.
+ voidinstall(GinModule install) + +
+          Uses the given module to configure more bindings.
+ voidrequestStaticInjection(java.lang.Class<?>... types) + +
+          Upon successful creation, the Ginjector will inject static fields + and methods in the given classes.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.client.binder.GinBinder
bind, bind, bind, bindConstant, install, requestStaticInjection
+  +

+ + + + + + + + +
+Method Detail
+ +

+expose

+
+public void expose(Key<?> key)
+
+
Description copied from interface: PrivateGinBinder
+
Expose the given key. +

+

+
Specified by:
expose in interface PrivateGinBinder
+
+
+
+
+
+
+ +

+expose

+
+public GinAnnotatedElementBuilder expose(java.lang.Class<?> type)
+
+
Description copied from interface: PrivateGinBinder
+
Expose the given class. Returns a GinAnnotatedElementBuilder which + can be used for adding an annotation. +

+

+
Specified by:
expose in interface PrivateGinBinder
+
+
+
+
+
+
+ +

+expose

+
+public GinAnnotatedElementBuilder expose(TypeLiteral<?> type)
+
+
Description copied from interface: PrivateGinBinder
+
Expose the given type. Returns a GinAnnotatedElementBuilder which + can be used for adding an annotation. +

+

+
Specified by:
expose in interface PrivateGinBinder
+
+
+
+
+
+
+ +

+bind

+
+public <T> GinAnnotatedBindingBuilder<T> bind(java.lang.Class<T> clazz)
+
+
Description copied from interface: GinBinder
+
See the EDSL examples at GinBinder +

+

+
Specified by:
bind in interface GinBinder
+
+
+
+
+
+
+ +

+bind

+
+public <T> GinAnnotatedBindingBuilder<T> bind(TypeLiteral<T> clazz)
+
+
Description copied from interface: GinBinder
+
See the EDSL examples at GinBinder +

+

+
Specified by:
bind in interface GinBinder
+
+
+
+
+
+
+ +

+bind

+
+public <T> GinLinkedBindingBuilder<T> bind(Key<T> key)
+
+
Description copied from interface: GinBinder
+
See the EDSL examples at GinBinder +

+

+
Specified by:
bind in interface GinBinder
+
+
+
+
+
+
+ +

+bindConstant

+
+public GinAnnotatedConstantBindingBuilder bindConstant()
+
+
Description copied from interface: GinBinder
+
See the EDSL examples at GinBinder +

+

+
Specified by:
bindConstant in interface GinBinder
+
+
+
+
+
+
+ +

+install

+
+public void install(GinModule install)
+
+
Description copied from interface: GinBinder
+
Uses the given module to configure more bindings. +

+

+
Specified by:
install in interface GinBinder
+
+
+
+
+
+
+ +

+requestStaticInjection

+
+public void requestStaticInjection(java.lang.Class<?>... types)
+
+
Description copied from interface: GinBinder
+
Upon successful creation, the Ginjector will inject static fields + and methods in the given classes. +

+

+
Specified by:
requestStaticInjection in interface GinBinder
+
+
+
Parameters:
types - for which static members will be injected
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateGinModuleAdapter.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateGinModuleAdapter.html new file mode 100644 index 0000000..036a6f5 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/PrivateGinModuleAdapter.html @@ -0,0 +1,316 @@ + + + + + + +PrivateGinModuleAdapter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.adapter +
+Class PrivateGinModuleAdapter

+
+java.lang.Object
+  extended by com.google.inject.PrivateModule
+      extended by com.google.gwt.inject.rebind.adapter.PrivateGinModuleAdapter
+
+
+
All Implemented Interfaces:
Module
+
+
+
+
public class PrivateGinModuleAdapter
extends PrivateModule
+ + +

+Makes a PrivateGinModule available as a Module. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
PrivateGinModuleAdapter(PrivateGinModule ginModule, + GinjectorBindings bindings) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidconfigure() + +
+           
+ booleanequals(java.lang.Object obj) + +
+           
+ inthashCode() + +
+           
+ + + + + + + +
Methods inherited from class com.google.inject.PrivateModule
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindScope, configure, convertToTypes, currentStage, expose, expose, expose, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+PrivateGinModuleAdapter

+
+public PrivateGinModuleAdapter(PrivateGinModule ginModule,
+                               GinjectorBindings bindings)
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public void configure()
+
+
+
Specified by:
configure in class PrivateModule
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
Overrides:
equals in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-frame.html new file mode 100644 index 0000000..0e1a6af --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-frame.html @@ -0,0 +1,40 @@ + + + + + + +com.google.gwt.inject.rebind.adapter + + + + + + + + + + + +com.google.gwt.inject.rebind.adapter + + + + +
+Classes  + +
+AnnotatedElementBuilderAdapter +
+GinModuleAdapter +
+GwtDotCreateProvider +
+PrivateBinderAdapter +
+PrivateGinModuleAdapter
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-summary.html new file mode 100644 index 0000000..a26c50e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-summary.html @@ -0,0 +1,173 @@ + + + + + + +com.google.gwt.inject.rebind.adapter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.adapter +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AnnotatedElementBuilderAdapter 
GinModuleAdapterMakes a GinModule available as a Module.
GwtDotCreateProvider<T>A dummy provider to register for cases like + bind().in(scope) (where there is no target key).
PrivateBinderAdapterProvides the PrivateGinBinder interface and adapts it to a regular Guice + PrivateBinder.
PrivateGinModuleAdapterMakes a PrivateGinModule available as a Module.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-tree.html new file mode 100644 index 0000000..d3513ad --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/adapter/package-tree.html @@ -0,0 +1,158 @@ + + + + + + +com.google.gwt.inject.rebind.adapter Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.adapter +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/AsyncProviderBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/AsyncProviderBinding.html new file mode 100644 index 0000000..0b92b0c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/AsyncProviderBinding.html @@ -0,0 +1,377 @@ + + + + + + +AsyncProviderBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class AsyncProviderBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.AsyncProviderBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class AsyncProviderBinding
extends java.lang.Object
implements Binding
+ + +

+Binding implementation for AsyncProvider<T> that generates + the following code for the provider: + +

+   return new %provider_name% () {
+      public void get(final AsyncCallback<%object_to_create%> callback) {
+        GWT.runAsync(new RunAsyncCallback() {
+          public void onSuccess() {
+            callback.onSuccess(%provider_of_object_to_create%.get());
+          }
+          public void onFailure(Throwable ex) {
+            callback.onFailure(ex);
+          }
+        }
+      }
+   }
+ 
+ 
+

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindClassBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindClassBinding.html new file mode 100644 index 0000000..05d3e40 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindClassBinding.html @@ -0,0 +1,360 @@ + + + + + + +BindClassBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class BindClassBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.BindClassBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class BindClassBinding
extends java.lang.Object
implements Binding
+ + +

+Binding implementation that replaces one type with another. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindConstantBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindConstantBinding.html new file mode 100644 index 0000000..f6508c2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindConstantBinding.html @@ -0,0 +1,386 @@ + + + + + + +BindConstantBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class BindConstantBinding<T>

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.BindConstantBinding<T>
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class BindConstantBinding<T>
extends java.lang.Object
implements Binding
+ + +

+Binding for a constant value. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+static booleanisConstantKey(Key<?> key) + +
+          Returns true if the provided key is a valid constant key, i.e.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+isConstantKey

+
+public static boolean isConstantKey(Key<?> key)
+
+
Returns true if the provided key is a valid constant key, i.e. if a + constant binding can be legally created for it. +

+

+
+
+
+
Parameters:
key - key to check +
Returns:
true if constant key
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindProviderBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindProviderBinding.html new file mode 100644 index 0000000..7bbecd3 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindProviderBinding.html @@ -0,0 +1,360 @@ + + + + + + +BindProviderBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class BindProviderBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.BindProviderBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class BindProviderBinding
extends java.lang.Object
implements Binding
+ + +

+A binding to call the requested Provider. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/Binding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Binding.html new file mode 100644 index 0000000..5ff6fdc --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Binding.html @@ -0,0 +1,319 @@ + + + + + + +Binding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Interface Binding

+
+
All Known Implementing Classes:
AsyncProviderBinding, BindClassBinding, BindConstantBinding, BindProviderBinding, CallConstructorBinding, CallGwtDotCreateBinding, ExposedChildBinding, FactoryBinding, GinjectorBinding, ImplicitProviderBinding, ParentBinding, ProviderMethodBinding, RemoteServiceProxyBinding
+
+
+
+
public interface Binding
+ + +

+Interface used by InjectorGeneratorImpl to represent different kinds + of bindings. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                    java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getContext

+
+Context getContext()
+
+
Returns the context in which this binding was created. +

+

+
+
+
+
+ +

+getGetterMethodPackage

+
+java.lang.String getGetterMethodPackage()
+
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
+
+
+
+ +

+getDependencies

+
+java.util.Collection<Dependency> getDependencies()
+
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
+
+
+
+ +

+getMemberInjectRequests

+
+java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactory.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactory.html new file mode 100644 index 0000000..f764629 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactory.html @@ -0,0 +1,475 @@ + + + + + + +BindingFactory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Interface BindingFactory

+
+
All Known Implementing Classes:
BindingFactoryImpl
+
+
+
+
public interface BindingFactory
+ + +

+Factory interface for creating bindings. The parameters to each method are the not guice + controlled parameters to each binding's constructor, analogous to how Assisted factories + work. We cannot use true assisted inject since some of the types we use (Key and + TypeLiteral) are not compatible with Guice injection. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ AsyncProviderBindinggetAsyncProviderBinding(Key<?> providerKey) + +
+           
+ BindClassBindinggetBindClassBinding(Key<?> boundClassKey, + Key<?> sourceClassKey, + Context context) + +
+           
+ + + + + +
+<T> BindConstantBinding
+
getBindConstantBinding(Key<T> key, + T instance, + Context context) + +
+           
+ BindProviderBindinggetBindProviderBinding(Key<? extends javax.inject.Provider<?>> providerKey, + Key<?> sourceKey, + Context context) + +
+           
+ CallConstructorBindinggetCallConstructorBinding(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor) + +
+           
+ CallGwtDotCreateBindinggetCallGwtDotCreateBinding(TypeLiteral<?> type) + +
+           
+ ExposedChildBindinggetExposedChildBinding(Key<?> key, + GinjectorBindings childBindings, + Context context) + +
+           
+ FactoryBindinggetFactoryBinding(java.util.Map<Key<?>,TypeLiteral<?>> collector, + Key<?> factoryKey, + Context context) + +
+           
+ GinjectorBindinggetGinjectorBinding() + +
+           
+ ImplicitProviderBindinggetImplicitProviderBinding(Key<?> providerKey) + +
+           
+ ParentBindinggetParentBinding(Key<?> key, + GinjectorBindings parentBindings, + Context context) + +
+           
+ ProviderMethodBindinggetProviderMethodBinding(com.google.inject.internal.ProviderMethod<?> providerMethod, + Context context) + +
+           
+ RemoteServiceProxyBindinggetRemoteServiceProxyBinding(TypeLiteral<?> type) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+getAsyncProviderBinding

+
+AsyncProviderBinding getAsyncProviderBinding(Key<?> providerKey)
+
+
+
+
+
+
+ +

+getBindClassBinding

+
+BindClassBinding getBindClassBinding(Key<?> boundClassKey,
+                                     Key<?> sourceClassKey,
+                                     Context context)
+
+
+
+
+
+
+ +

+getBindConstantBinding

+
+<T> BindConstantBinding getBindConstantBinding(Key<T> key,
+                                               T instance,
+                                               Context context)
+
+
+
+
+
+
+ +

+getBindProviderBinding

+
+BindProviderBinding getBindProviderBinding(Key<? extends javax.inject.Provider<?>> providerKey,
+                                           Key<?> sourceKey,
+                                           Context context)
+
+
+
+
+
+
+ +

+getCallConstructorBinding

+
+CallConstructorBinding getCallConstructorBinding(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor)
+
+
+
+
+
+
+ +

+getCallGwtDotCreateBinding

+
+CallGwtDotCreateBinding getCallGwtDotCreateBinding(TypeLiteral<?> type)
+
+
+
+
+
+
+ +

+getExposedChildBinding

+
+ExposedChildBinding getExposedChildBinding(Key<?> key,
+                                           GinjectorBindings childBindings,
+                                           Context context)
+
+
+
+
+
+
+ +

+getFactoryBinding

+
+FactoryBinding getFactoryBinding(java.util.Map<Key<?>,TypeLiteral<?>> collector,
+                                 Key<?> factoryKey,
+                                 Context context)
+
+
+
+
+
+
+ +

+getImplicitProviderBinding

+
+ImplicitProviderBinding getImplicitProviderBinding(Key<?> providerKey)
+
+
+
+
+
+
+ +

+getParentBinding

+
+ParentBinding getParentBinding(Key<?> key,
+                               GinjectorBindings parentBindings,
+                               Context context)
+
+
+
+
+
+
+ +

+getProviderMethodBinding

+
+ProviderMethodBinding getProviderMethodBinding(com.google.inject.internal.ProviderMethod<?> providerMethod,
+                                               Context context)
+
+
+
+
+
+
+ +

+getRemoteServiceProxyBinding

+
+RemoteServiceProxyBinding getRemoteServiceProxyBinding(TypeLiteral<?> type)
+
+
+
+
+
+
+ +

+getGinjectorBinding

+
+GinjectorBinding getGinjectorBinding()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactoryImpl.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactoryImpl.html new file mode 100644 index 0000000..bab345f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingFactoryImpl.html @@ -0,0 +1,564 @@ + + + + + + +BindingFactoryImpl + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class BindingFactoryImpl

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.BindingFactoryImpl
+
+
+
All Implemented Interfaces:
BindingFactory
+
+
+
+
public class BindingFactoryImpl
extends java.lang.Object
implements BindingFactory
+ + +

+Guice-based implementation of the binding factory. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
BindingFactoryImpl(ErrorManager errorManager, + GuiceUtil guiceUtil, + java.lang.Class<? extends Ginjector> ginjectorInterface, + MethodCallUtil methodCallUtil) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ AsyncProviderBindinggetAsyncProviderBinding(Key<?> providerKey) + +
+           
+ BindClassBindinggetBindClassBinding(Key<?> boundClassKey, + Key<?> sourceClassKey, + Context context) + +
+           
+ + + + + +
+<T> BindConstantBinding
+
getBindConstantBinding(Key<T> key, + T instance, + Context context) + +
+           
+ BindProviderBindinggetBindProviderBinding(Key<? extends javax.inject.Provider<?>> providerKey, + Key<?> sourceKey, + Context context) + +
+           
+ CallConstructorBindinggetCallConstructorBinding(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor) + +
+           
+ CallGwtDotCreateBindinggetCallGwtDotCreateBinding(TypeLiteral<?> type) + +
+           
+ ExposedChildBindinggetExposedChildBinding(Key<?> key, + GinjectorBindings childBindings, + Context context) + +
+           
+ FactoryBindinggetFactoryBinding(java.util.Map<Key<?>,TypeLiteral<?>> collector, + Key<?> factoryKey, + Context context) + +
+           
+ GinjectorBindinggetGinjectorBinding() + +
+           
+ ImplicitProviderBindinggetImplicitProviderBinding(Key<?> providerKey) + +
+           
+ ParentBindinggetParentBinding(Key<?> key, + GinjectorBindings parentBindings, + Context context) + +
+           
+ ProviderMethodBindinggetProviderMethodBinding(com.google.inject.internal.ProviderMethod<?> providerMethod, + Context context) + +
+           
+ RemoteServiceProxyBindinggetRemoteServiceProxyBinding(TypeLiteral<?> type) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+BindingFactoryImpl

+
+@Inject
+public BindingFactoryImpl(ErrorManager errorManager,
+                                 GuiceUtil guiceUtil,
+                                 java.lang.Class<? extends Ginjector> ginjectorInterface,
+                                 MethodCallUtil methodCallUtil)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAsyncProviderBinding

+
+public AsyncProviderBinding getAsyncProviderBinding(Key<?> providerKey)
+
+
+
Specified by:
getAsyncProviderBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getBindClassBinding

+
+public BindClassBinding getBindClassBinding(Key<?> boundClassKey,
+                                            Key<?> sourceClassKey,
+                                            Context context)
+
+
+
Specified by:
getBindClassBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getBindConstantBinding

+
+public <T> BindConstantBinding getBindConstantBinding(Key<T> key,
+                                                      T instance,
+                                                      Context context)
+
+
+
Specified by:
getBindConstantBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getBindProviderBinding

+
+public BindProviderBinding getBindProviderBinding(Key<? extends javax.inject.Provider<?>> providerKey,
+                                                  Key<?> sourceKey,
+                                                  Context context)
+
+
+
Specified by:
getBindProviderBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getCallConstructorBinding

+
+public CallConstructorBinding getCallConstructorBinding(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor)
+
+
+
Specified by:
getCallConstructorBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getCallGwtDotCreateBinding

+
+public CallGwtDotCreateBinding getCallGwtDotCreateBinding(TypeLiteral<?> type)
+
+
+
Specified by:
getCallGwtDotCreateBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getExposedChildBinding

+
+public ExposedChildBinding getExposedChildBinding(Key<?> key,
+                                                  GinjectorBindings childBindings,
+                                                  Context context)
+
+
+
Specified by:
getExposedChildBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getFactoryBinding

+
+public FactoryBinding getFactoryBinding(java.util.Map<Key<?>,TypeLiteral<?>> collector,
+                                        Key<?> factoryKey,
+                                        Context context)
+
+
+
Specified by:
getFactoryBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getGinjectorBinding

+
+public GinjectorBinding getGinjectorBinding()
+
+
+
Specified by:
getGinjectorBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getImplicitProviderBinding

+
+public ImplicitProviderBinding getImplicitProviderBinding(Key<?> providerKey)
+
+
+
Specified by:
getImplicitProviderBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getParentBinding

+
+public ParentBinding getParentBinding(Key<?> key,
+                                      GinjectorBindings parentBindings,
+                                      Context context)
+
+
+
Specified by:
getParentBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getProviderMethodBinding

+
+public ProviderMethodBinding getProviderMethodBinding(com.google.inject.internal.ProviderMethod<?> providerMethod,
+                                                      Context context)
+
+
+
Specified by:
getProviderMethodBinding in interface BindingFactory
+
+
+
+
+
+
+ +

+getRemoteServiceProxyBinding

+
+public RemoteServiceProxyBinding getRemoteServiceProxyBinding(TypeLiteral<?> type)
+
+
+
Specified by:
getRemoteServiceProxyBinding in interface BindingFactory
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingIndex.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingIndex.html new file mode 100644 index 0000000..6b5064e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/BindingIndex.html @@ -0,0 +1,218 @@ + + + + + + +BindingIndex + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Interface BindingIndex

+
+
All Known Implementing Classes:
GinjectorBindings
+
+
+
+
public interface BindingIndex
+ + +

+Simple interface for an index of bound keys in the Ginjector. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ booleanisBound(Key<?> key) + +
+          Returns true if the passed key is bound in the Ginjector.
+  +

+ + + + + + + + +
+Method Detail
+ +

+isBound

+
+boolean isBound(Key<?> key)
+
+
Returns true if the passed key is bound in the Ginjector. +

+ Note: This only works reliably in the source-generation phase of the + ginjector generation since during the binding processing phase not all + keys are guaranteed to have been looked at. +

+

+
Parameters:
key - key to be checked +
Returns:
true if key is bound.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallConstructorBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallConstructorBinding.html new file mode 100644 index 0000000..81c51f4 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallConstructorBinding.html @@ -0,0 +1,466 @@ + + + + + + +CallConstructorBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class CallConstructorBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.CallConstructorBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class CallConstructorBinding
extends java.lang.Object
+ + +

+A binding that calls a single constructor directly. Values for constructor + parameters are retrieved by going back through the injector. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddParamTypes(MethodLiteral<?,?> method) + +
+           
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+protected  SourceSnippetgetCreationStatement(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets a SourceSnippet that creates the bound value and stores it in + a new local variable named "result", and creates any auxiliary methods + required by the snippet.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ TypeLiteral<?>getType() + +
+           
+protected  java.lang.StringgetTypeName() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatement

+
+protected SourceSnippet getCreationStatement(NameGenerator nameGenerator,
+                                             java.util.List<InjectorMethod> methodsOutput)
+                                      throws NoSourceNameException
+
+
Gets a SourceSnippet that creates the bound value and stores it in + a new local variable named "result", and creates any auxiliary methods + required by the snippet. + +

The final creation statements output by this binding will also perform + member injection on the created value. +

+

+
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getType

+
+public TypeLiteral<?> getType()
+
+
+
+
+
+
+
+
+
+ +

+getTypeName

+
+protected java.lang.String getTypeName()
+                                throws NoSourceNameException
+
+
+
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+addParamTypes

+
+protected void addParamTypes(MethodLiteral<?,?> method)
+
+
+
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallGwtDotCreateBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallGwtDotCreateBinding.html new file mode 100644 index 0000000..5f00dd0 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/CallGwtDotCreateBinding.html @@ -0,0 +1,514 @@ + + + + + + +CallGwtDotCreateBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class CallGwtDotCreateBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
Direct Known Subclasses:
RemoteServiceProxyBinding
+
+
+
+
public class CallGwtDotCreateBinding
extends java.lang.Object
+ + +

+A binding that just calls GWT.create() for the requested type. + This is the default binding for interfaces or classes that don't have + a non-default constructor annotated with @Inject. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddParamTypes(MethodLiteral<?,?> method) + +
+           
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+protected  SourceSnippetgetCreationStatement(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets a SourceSnippet that creates the bound value and stores it in + a new local variable named "result", and creates any auxiliary methods + required by the snippet.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+protected  java.lang.StringgetExpectedTypeName() + +
+           
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ TypeLiteral<?>getType() + +
+           
+protected  java.lang.StringgetTypeName() + +
+           
+protected  java.lang.StringgetTypeNameToCreate() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatement

+
+protected final SourceSnippet getCreationStatement(NameGenerator nameGenerator,
+                                                   java.util.List<InjectorMethod> methodsOutput)
+                                            throws NoSourceNameException
+
+
Gets a SourceSnippet that creates the bound value and stores it in + a new local variable named "result", and creates any auxiliary methods + required by the snippet. + +

The final creation statements output by this binding will also perform + member injection on the created value. +

+

+
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getTypeNameToCreate

+
+protected java.lang.String getTypeNameToCreate()
+                                        throws NoSourceNameException
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getExpectedTypeName

+
+protected java.lang.String getExpectedTypeName()
+                                        throws NoSourceNameException
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getType

+
+public TypeLiteral<?> getType()
+
+
+
+
+
+
+
+
+
+ +

+getTypeName

+
+protected java.lang.String getTypeName()
+                                throws NoSourceNameException
+
+
+
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+addParamTypes

+
+protected void addParamTypes(MethodLiteral<?,?> method)
+
+
+
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/Context.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Context.html new file mode 100644 index 0000000..f1fe308 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Context.html @@ -0,0 +1,330 @@ + + + + + + +Context + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class Context

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.Context
+
+
+
+
public class Context
extends java.lang.Object
+ + +

+Describes the context in which a binding or dependency was created. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Constructor Summary
+protected Context(java.lang.String contextFormat, + java.lang.Object... contextArgs) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static ContextforElement(Element element) + +
+          Create a Context storing the context of the given Guice + Element.
+static Contextformat(java.lang.String contextFmt, + java.lang.Object... args) + +
+          Create a Context from formatted text.
+static ContextforText(java.lang.String text) + +
+          Create a Context from a text string.
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Context

+
+protected Context(java.lang.String contextFormat,
+                  java.lang.Object... contextArgs)
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+forElement

+
+public static Context forElement(Element element)
+
+
Create a Context storing the context of the given Guice + Element. +

+

+
+
+
+
+ +

+forText

+
+public static Context forText(java.lang.String text)
+
+
Create a Context from a text string. +

+

+
+
+
+
+ +

+format

+
+public static Context format(java.lang.String contextFmt,
+                             java.lang.Object... args)
+
+
Create a Context from formatted text. The text will not be + formatted until toString() is invoked. +

+

+
Parameters:
contextFmt - format string, as with PrettyPrinter.format(String, Object...)
args - arguments for the format string, as with + PrettyPrinter.format(String, Object...)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/Dependency.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Dependency.html new file mode 100644 index 0000000..def296b --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Dependency.html @@ -0,0 +1,543 @@ + + + + + + +Dependency + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class Dependency

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.Dependency
+
+
+
+
public class Dependency
extends java.lang.Object
+ + +

+Representation of a dependency edge. Contains information about the source and target + Key<?>s, as well as the properties of the edge (optional/requried, lazy/eager). + +

Dependencies also store the context in which the dependency arose. This + is not part of the dependency's identity from the point of view of equals() + and hashCode(), which ultimately means that if the same dependency arises in + several different contexts, we will pick an arbitrary instance (specifically, + the first one encountered, see DependencyGraph). +

+ +

+


+ +

+ + + + + + + + + + + +
+Field Summary
+static Key<?>GINJECTOR + +
+          A unique key used to indicate that a dependency originated in the Ginjector; for instance, + keys produced by the root Ginjector, or while visiting bindings in GuiceBindingVisitor + often have as their source GINJECTOR.
+  + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
Dependency(Key<?> source, + Key<?> target, + boolean optional, + boolean lazy, + Context context) + +
+          Construct a dependency edge from the given source to target keys.
Dependency(Key<?> source, + Key<?> target, + boolean optional, + boolean lazy, + java.lang.String context, + java.lang.Object... contextArgs) + +
+          Construct a dependency edge from the given source to target keys.
Dependency(Key<?> source, + Key<?> target, + Context context) + +
+          Construct a dependency edge from the given source to target keys.
Dependency(Key<?> source, + Key<?> target, + java.lang.String context, + java.lang.Object... contextArgs) + +
+          Construct a dependency edge from the given source to target keys.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object obj) + +
+           
+ ContextgetContext() + +
+           
+ Key<?>getSource() + +
+           
+ Key<?>getTarget() + +
+           
+ inthashCode() + +
+           
+ booleanisLazy() + +
+           
+ booleanisOptional() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+GINJECTOR

+
+public static final Key<?> GINJECTOR
+
+
A unique key used to indicate that a dependency originated in the Ginjector; for instance, + keys produced by the root Ginjector, or while visiting bindings in GuiceBindingVisitor + often have as their source GINJECTOR. +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+Dependency

+
+public Dependency(Key<?> source,
+                  Key<?> target,
+                  java.lang.String context,
+                  java.lang.Object... contextArgs)
+
+
Construct a dependency edge from the given source to target keys. Creates a required, eager + edge. +

+

+
Parameters:
source - The key that depends on target. Can use GINJECTOR as + described above.
target - the key that is depended on
context - a brief description of the context of the dependency (e.g., Foo.java:123)
contextArgs - arguments to pretty-print into the context as with + PrettyPrinter.format(java.lang.String, java.lang.Object...)
+
+
+ +

+Dependency

+
+public Dependency(Key<?> source,
+                  Key<?> target,
+                  Context context)
+
+
Construct a dependency edge from the given source to target keys. Creates a required, eager + edge. +

+

+
Parameters:
source - The key that depends on target. Can use GINJECTOR as + described above.
target - the key that is depended on
context - the context of the dependency (e.g., Foo.java:123)
+
+
+ +

+Dependency

+
+public Dependency(Key<?> source,
+                  Key<?> target,
+                  boolean optional,
+                  boolean lazy,
+                  java.lang.String context,
+                  java.lang.Object... contextArgs)
+
+
Construct a dependency edge from the given source to target keys. +

+

+
Parameters:
source - The key that depends on the target. Can use GINJECTOR as + described above.
target - the key that is depended on
optional - true iff the dependency is optional. Errors will not be reported if + the target is unavailable.
lazy - true iff the dependency is only needed on-demand (eg, by calling + Provider.get()). A cycle is only a problem if none of the edges are lazy.
context - a brief description of the context of the dependency (e.g., Foo.java:123)
contextArgs - arguments to pretty-print into the context as with + PrettyPrinter.format(java.lang.String, java.lang.Object...)
+
+
+ +

+Dependency

+
+public Dependency(Key<?> source,
+                  Key<?> target,
+                  boolean optional,
+                  boolean lazy,
+                  Context context)
+
+
Construct a dependency edge from the given source to target keys. +

+

+
Parameters:
source - The key that depends on the target. Can use GINJECTOR as + described above.
target - the key that is depended on
optional - true iff the dependency is optional. Errors will not be reported if + the target is unavailable.
lazy - true iff the dependency is only needed on-demand (eg, by calling + Provider.get()). A cycle is only a problem if none of the edges are lazy.
context - the context of the dependency (e.g., Foo.java:123)
+
+ + + + + + + + +
+Method Detail
+ +

+getContext

+
+public Context getContext()
+
+
+
+
+
+
+ +

+getTarget

+
+public Key<?> getTarget()
+
+
+
+
+
+
+ +

+getSource

+
+public Key<?> getSource()
+
+
+
+
+
+
+ +

+isOptional

+
+public boolean isOptional()
+
+
+
+
+
+
+ +

+isLazy

+
+public boolean isLazy()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
Overrides:
equals in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/ExposedChildBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ExposedChildBinding.html new file mode 100644 index 0000000..71acb59 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ExposedChildBinding.html @@ -0,0 +1,417 @@ + + + + + + +ExposedChildBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class ExposedChildBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.ExposedChildBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class ExposedChildBinding
extends java.lang.Object
implements Binding
+ + +

+Binding that represents a value exposed to this level from lower in the injector hierarchy. + + TODO(bchambers): As with ParentBinding it would be nice if this didn't need the + no-op creator method. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
ExposedChildBinding(ErrorManager errorManager, + Key<?> key, + GinjectorBindings childBindings, + Context context) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ GinjectorBindingsgetChildBindings() + +
+           
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          The getter must be placed in the same package as the child getter, to ensure that its return + type is visible.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getMemberInjectRequests
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ExposedChildBinding

+
+public ExposedChildBinding(ErrorManager errorManager,
+                           Key<?> key,
+                           GinjectorBindings childBindings,
+                           Context context)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
The getter must be placed in the same package as the child getter, to ensure that its return + type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getChildBindings

+
+public GinjectorBindings getChildBindings()
+
+
+
+
+
+
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/FactoryBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/FactoryBinding.html new file mode 100644 index 0000000..068ae40 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/FactoryBinding.html @@ -0,0 +1,371 @@ + + + + + + +FactoryBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class FactoryBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.FactoryBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class FactoryBinding
extends java.lang.Object
implements Binding
+ + +

+Binder producing assisted inject factories. +

+ For each method in the factory interface, the binder will determine the + implementation type from the return type and the provided bindings. It will + then check all constructors in the implementation type against the method + parameters (taking named @Assisted annotations into + account) and pick a matching one (if available). To inject the selected + constructor the binder will write a common method injection, replacing the + parameters commonly retrieved through key-specific getter methods with + values obtained from the matching method arguments. Finally, after an + instance has been constructed, it will be member-injected before it is + returned to the caller of the method. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/GinjectorBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/GinjectorBinding.html new file mode 100644 index 0000000..e839809 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/GinjectorBinding.html @@ -0,0 +1,394 @@ + + + + + + +GinjectorBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class GinjectorBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.GinjectorBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class GinjectorBinding
extends java.lang.Object
implements Binding
+ + +

+Simple binding that allows injection of the ginjector. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinjectorBinding(java.lang.Class<? extends Ginjector> ginjectorInterface) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinjectorBinding

+
+@Inject
+public GinjectorBinding(java.lang.Class<? extends Ginjector> ginjectorInterface)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/ImplicitProviderBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ImplicitProviderBinding.html new file mode 100644 index 0000000..bcbc83c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ImplicitProviderBinding.html @@ -0,0 +1,361 @@ + + + + + + +ImplicitProviderBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class ImplicitProviderBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.ImplicitProviderBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class ImplicitProviderBinding
extends java.lang.Object
implements Binding
+ + +

+Binding implementation for Provider<T> that just uses the binding + to T. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/Injectable.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Injectable.html new file mode 100644 index 0000000..1f57e17 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/Injectable.html @@ -0,0 +1,173 @@ + + + + + + +Injectable + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Annotation Type Injectable

+
+
+
@Retention(value=RUNTIME)
+@Target(value={PARAMETER,FIELD,METHOD})
+public @interface Injectable
+ + +

+Binding for MemberCollectors + that collect injectable methods and fields (i.e. methods and fields with + @Inject on them). +

+ +

+ +

+ +

+ +


+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/ParentBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ParentBinding.html new file mode 100644 index 0000000..3087e69 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ParentBinding.html @@ -0,0 +1,379 @@ + + + + + + +ParentBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class ParentBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.ParentBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class ParentBinding
extends java.lang.Object
implements Binding
+ + +

+Binding that represents a value inherited from higher in the injector hierarchy. + + TODO(bchambers): It would be nice if we didn't need to have the creator/parent + paradigm for parent and child bindings, but it is the easiest way to add this + to Gin. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          The getter must be placed in the same package as the parent getter, to ensure that its return + type is visible.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ GinjectorBindingsgetParentBindings() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
The getter must be placed in the same package as the parent getter, to ensure that its return + type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getParentBindings

+
+public GinjectorBindings getParentBindings()
+
+
+
+
+
+
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/ProviderMethodBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ProviderMethodBinding.html new file mode 100644 index 0000000..1a65563 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/ProviderMethodBinding.html @@ -0,0 +1,363 @@ + + + + + + +ProviderMethodBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class ProviderMethodBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.ProviderMethodBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class ProviderMethodBinding
extends java.lang.Object
implements Binding
+ + +

+A binding that calls a provider method. This binding depends on + the GinModule's key, meaning that it will cause the module + itself to be instantiated at runtime so it can call the provider + method. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage, getMemberInjectRequests
+  +

+ + + + + + + + +
+Method Detail
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/RemoteServiceProxyBinding.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/RemoteServiceProxyBinding.html new file mode 100644 index 0000000..77acfc3 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/RemoteServiceProxyBinding.html @@ -0,0 +1,509 @@ + + + + + + +RemoteServiceProxyBinding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.binding +
+Class RemoteServiceProxyBinding

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding
+      extended by com.google.gwt.inject.rebind.binding.RemoteServiceProxyBinding
+
+
+
All Implemented Interfaces:
Binding
+
+
+
+
public class RemoteServiceProxyBinding
extends CallGwtDotCreateBinding
+ + +

+A binding that calls GWT.create() for the non-"Async" version + of the requested type. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddParamTypes(MethodLiteral<?,?> method) + +
+           
+ ContextgetContext() + +
+          Returns the context in which this binding was created.
+ SourceSnippetgetCreationStatements(NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result.
+ java.util.Collection<Dependency>getDependencies() + +
+          Returns the set of dependencies that this binding produces.
+protected  java.lang.StringgetExpectedTypeName() + +
+           
+ java.lang.StringgetGetterMethodPackage() + +
+          Returns the package in which the getter for the bound key is created.
+ java.util.Collection<TypeLiteral<?>>getMemberInjectRequests() + +
+          Returns the set of types for which this binding requires member injection methods to be + written.
+ TypeLiteral<?>getType() + +
+           
+protected  java.lang.StringgetTypeName() + +
+           
+protected  java.lang.StringgetTypeNameToCreate() + +
+           
+static booleanisRemoteServiceProxy(TypeLiteral<?> type) + +
+           
+ + + + + + + +
Methods inherited from class com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding
getCreationStatement
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.binding.Binding
getContext, getGetterMethodPackage
+  +

+ + + + + + + + +
+Method Detail
+ +

+isRemoteServiceProxy

+
+public static boolean isRemoteServiceProxy(TypeLiteral<?> type)
+
+
+
+
+
+
+ +

+getTypeNameToCreate

+
+protected java.lang.String getTypeNameToCreate()
+                                        throws NoSourceNameException
+
+
+
Overrides:
getTypeNameToCreate in class CallGwtDotCreateBinding
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getExpectedTypeName

+
+protected java.lang.String getExpectedTypeName()
+                                        throws NoSourceNameException
+
+
+
Overrides:
getExpectedTypeName in class CallGwtDotCreateBinding
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getCreationStatements

+
+public SourceSnippet getCreationStatements(NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Description copied from interface: Binding
+
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. If additional + methods are to be created, the given NameGenerator should be used + to choose their names, and they should be added to methodsOutput. +

+

+
Specified by:
getCreationStatements in interface Binding
+
+
+ +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies()
+
+
Description copied from interface: Binding
+
Returns the set of dependencies that this binding produces. This contains edges coming into + the key that this type binds (from Dependency.GINJECTOR) as well as dependencies that + this binding needs. +

+

+
Specified by:
getDependencies in interface Binding
+
+
+
+
+
+
+ +

+getType

+
+public TypeLiteral<?> getType()
+
+
+
+
+
+
+
+
+
+ +

+getTypeName

+
+protected java.lang.String getTypeName()
+                                throws NoSourceNameException
+
+
+
+
+
+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+addParamTypes

+
+protected void addParamTypes(MethodLiteral<?,?> method)
+
+
+
+
+
+
+
+
+
+ +

+getMemberInjectRequests

+
+public java.util.Collection<TypeLiteral<?>> getMemberInjectRequests()
+
+
Description copied from interface: Binding
+
Returns the set of types for which this binding requires member injection methods to be + written. +

+

+
Specified by:
getMemberInjectRequests in interface Binding
+
+
+
+
+
+
+ +

+getContext

+
+public Context getContext()
+
+
Description copied from interface: Binding
+
Returns the context in which this binding was created. +

+

+
Specified by:
getContext in interface Binding
+
+
+
+
+
+
+ +

+getGetterMethodPackage

+
+public java.lang.String getGetterMethodPackage()
+
+
Description copied from interface: Binding
+
Returns the package in which the getter for the bound key is created. This + is used by other bindings and by the top-level interface to determine which + package this binding's method was written to. Implementors may assume that + all other bindings have been created and placed in their respective + GinjectorBindings objects. + +

Typically this will be the package containing the type that is returned + by the getter, but the only requirement is that it has to be a package + where the return type is visible. +

+

+
Specified by:
getGetterMethodPackage in interface Binding
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-frame.html new file mode 100644 index 0000000..e0c2432 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-frame.html @@ -0,0 +1,88 @@ + + + + + + +com.google.gwt.inject.rebind.binding + + + + + + + + + + + +com.google.gwt.inject.rebind.binding + + + + +
+Interfaces  + +
+Binding +
+BindingFactory +
+BindingIndex
+ + + + + + +
+Classes  + +
+AsyncProviderBinding +
+BindClassBinding +
+BindConstantBinding +
+BindingFactoryImpl +
+BindProviderBinding +
+CallConstructorBinding +
+CallGwtDotCreateBinding +
+Context +
+Dependency +
+ExposedChildBinding +
+FactoryBinding +
+GinjectorBinding +
+ImplicitProviderBinding +
+ParentBinding +
+ProviderMethodBinding +
+RemoteServiceProxyBinding
+ + + + + + +
+Annotation Types  + +
+Injectable
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-summary.html new file mode 100644 index 0000000..1e29549 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-summary.html @@ -0,0 +1,270 @@ + + + + + + +com.google.gwt.inject.rebind.binding + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.binding +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
BindingInterface used by InjectorGeneratorImpl to represent different kinds + of bindings.
BindingFactoryFactory interface for creating bindings.
BindingIndexSimple interface for an index of bound keys in the Ginjector.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AsyncProviderBindingBinding implementation for AsyncProvider<T> that generates + the following code for the provider: + +
+   return new %provider_name% () {
+      public void get(final AsyncCallback<%object_to_create%> callback) {
+        GWT.runAsync(new RunAsyncCallback() {
+          public void onSuccess() {
+            callback.onSuccess(%provider_of_object_to_create%.get());
+          }
+          public void onFailure(Throwable ex) {
+            callback.onFailure(ex);
+          }
+        }
+      }
+   }
BindClassBindingBinding implementation that replaces one type with another.
BindConstantBinding<T>Binding for a constant value.
BindingFactoryImplGuice-based implementation of the binding factory.
BindProviderBindingA binding to call the requested Provider.
CallConstructorBindingA binding that calls a single constructor directly.
CallGwtDotCreateBindingA binding that just calls GWT.create() for the requested type.
ContextDescribes the context in which a binding or dependency was created.
DependencyRepresentation of a dependency edge.
ExposedChildBindingBinding that represents a value exposed to this level from lower in the injector hierarchy.
FactoryBindingBinder producing assisted inject factories.
GinjectorBindingSimple binding that allows injection of the ginjector.
ImplicitProviderBindingBinding implementation for Provider<T> that just uses the binding + to T.
ParentBindingBinding that represents a value inherited from higher in the injector hierarchy.
ProviderMethodBindingA binding that calls a provider method.
RemoteServiceProxyBindingA binding that calls GWT.create() for the non-"Async" version + of the requested type.
+  + +

+ + + + + + + + + +
+Annotation Types Summary
InjectableBinding for MemberCollectors + that collect injectable methods and fields (i.e.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-tree.html new file mode 100644 index 0000000..24b14de --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/binding/package-tree.html @@ -0,0 +1,175 @@ + + + + + + +com.google.gwt.inject.rebind.binding Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.binding +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +

+Annotation Type Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.Factory.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.Factory.html new file mode 100644 index 0000000..1dbd4c8 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.Factory.html @@ -0,0 +1,211 @@ + + + + + + +FragmentPackageName.Factory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.output +
+Interface FragmentPackageName.Factory

+
+
Enclosing class:
FragmentPackageName
+
+
+
+
public static interface FragmentPackageName.Factory
+ + +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ FragmentPackageNamecreate(java.lang.String requestedName) + +
+          Request a fragment package name that can access values in the given + package name.
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+FragmentPackageName create(java.lang.String requestedName)
+
+
Request a fragment package name that can access values in the given + package name. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.html new file mode 100644 index 0000000..30cc274 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/FragmentPackageName.html @@ -0,0 +1,296 @@ + + + + + + +FragmentPackageName + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.output +
+Class FragmentPackageName

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.output.FragmentPackageName
+
+
+
+
public class FragmentPackageName
extends java.lang.Object
+ + +

+Wrapping a String in FragmentPackageName converts it to a legal name + for a fragment package. Any code that manipulates the package name of a + fragment should store and/or pass it around using this class, to ensure that + the name is legal. + +

Normally the requested name is used as the package name, but the JVM + forbids us from placing generated code in certain packages. Luckily, we + never actually need to place code in those packages anyway, even if our rules + would normally cause us to do so (because users of Gin can only access public + parts of those packages). Since it doesn't matter where those methods go, we + arbitrarily put them in the fragment corresponding to the ginjector + interface. +

+ +

+


+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static interfaceFragmentPackageName.Factory + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object obj) + +
+           
+ inthashCode() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
Overrides:
equals in class java.lang.Object
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class java.lang.Object
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/GinjectorImplOutputter.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/GinjectorImplOutputter.html new file mode 100644 index 0000000..28a9cc5 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/GinjectorImplOutputter.html @@ -0,0 +1,287 @@ + + + + + + +GinjectorImplOutputter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.output +
+Class GinjectorImplOutputter

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.output.GinjectorImplOutputter
+
+
+
+
public class GinjectorImplOutputter
extends java.lang.Object
+ + +

+Outputs all the generated classes for an implementation of a Ginjector + interface. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GinjectorImplOutputter(com.google.gwt.inject.rebind.output.GinjectorBindingsOutputter bindingsOutputter, + com.google.gwt.core.ext.GeneratorContext ctx, + FragmentPackageName.Factory fragmentPackageNameFactory, + GinjectorNameGenerator ginjectorNameGenerator, + GuiceUtil guiceUtil, + com.google.gwt.core.ext.TreeLogger logger, + Provider<MemberCollector> collectorProvider, + com.google.gwt.inject.rebind.output.ReachabilityAnalyzer reachabilityAnalyzer, + SourceWriteUtil.Factory sourceWriteUtilFactory) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidwrite(java.lang.String packageName, + java.lang.String implClassName, + java.io.PrintWriter printWriter, + GinjectorBindings rootBindings) + +
+          Writes the implementation of the Ginjector interface associated + with the given GinjectorBindings object, if any, along with all the + injector classes and fragment classes required by the implementation.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GinjectorImplOutputter

+
+@Inject
+public GinjectorImplOutputter(com.google.gwt.inject.rebind.output.GinjectorBindingsOutputter bindingsOutputter,
+                                     com.google.gwt.core.ext.GeneratorContext ctx,
+                                     FragmentPackageName.Factory fragmentPackageNameFactory,
+                                     GinjectorNameGenerator ginjectorNameGenerator,
+                                     GuiceUtil guiceUtil,
+                                     com.google.gwt.core.ext.TreeLogger logger,
+                                     Provider<MemberCollector> collectorProvider,
+                                     com.google.gwt.inject.rebind.output.ReachabilityAnalyzer reachabilityAnalyzer,
+                                     SourceWriteUtil.Factory sourceWriteUtilFactory)
+
+
+ + + + + + + + +
+Method Detail
+ +

+write

+
+public void write(java.lang.String packageName,
+                  java.lang.String implClassName,
+                  java.io.PrintWriter printWriter,
+                  GinjectorBindings rootBindings)
+           throws com.google.gwt.core.ext.UnableToCompleteException
+
+
Writes the implementation of the Ginjector interface associated + with the given GinjectorBindings object, if any, along with all the + injector classes and fragment classes required by the implementation. +

+

+ +
Throws: +
com.google.gwt.core.ext.UnableToCompleteException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/OutputModule.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/OutputModule.html new file mode 100644 index 0000000..edb5fc7 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/OutputModule.html @@ -0,0 +1,270 @@ + + + + + + +OutputModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.output +
+Class OutputModule

+
+java.lang.Object
+  extended by com.google.inject.PrivateModule
+      extended by com.google.gwt.inject.rebind.output.OutputModule
+
+
+
All Implemented Interfaces:
Module
+
+
+
+
public class OutputModule
extends PrivateModule
+ + +

+Guice module binding the components of the output package. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
OutputModule() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidconfigure() + +
+           
+ + + + + + + +
Methods inherited from class com.google.inject.PrivateModule
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindScope, configure, convertToTypes, currentStage, expose, expose, expose, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+OutputModule

+
+public OutputModule()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public void configure()
+
+
+
Specified by:
configure in class PrivateModule
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-frame.html new file mode 100644 index 0000000..2388682 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-frame.html @@ -0,0 +1,47 @@ + + + + + + +com.google.gwt.inject.rebind.output + + + + + + + + + + + +com.google.gwt.inject.rebind.output + + + + +
+Interfaces  + +
+FragmentPackageName.Factory
+ + + + + + +
+Classes  + +
+FragmentPackageName +
+GinjectorImplOutputter +
+OutputModule
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-summary.html new file mode 100644 index 0000000..d39692d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-summary.html @@ -0,0 +1,179 @@ + + + + + + +com.google.gwt.inject.rebind.output + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.output +

+ + + + + + + + + +
+Interface Summary
FragmentPackageName.Factory 
+  + +

+ + + + + + + + + + + + + + + + + +
+Class Summary
FragmentPackageNameWrapping a String in FragmentPackageName converts it to a legal name + for a fragment package.
GinjectorImplOutputterOutputs all the generated classes for an implementation of a Ginjector + interface.
OutputModuleGuice module binding the components of the output package.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/output/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-tree.html new file mode 100644 index 0000000..2bf2909 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/output/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +com.google.gwt.inject.rebind.output Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.output +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/package-frame.html new file mode 100644 index 0000000..39ba95a --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/package-frame.html @@ -0,0 +1,83 @@ + + + + + + +com.google.gwt.inject.rebind + + + + + + + + + + + +com.google.gwt.inject.rebind + + + + +
+Interfaces  + +
+GuiceElementVisitor.GuiceElementVisitorFactory
+ + + + + + +
+Classes  + +
+DoubleBindingChecker +
+ErrorManager +
+GinjectorBindings +
+GinjectorGenerator +
+GinjectorNameGenerator +
+GuiceBindingVisitor +
+GuiceBindingVisitorFactory +
+GuiceElementVisitor
+ + + + + + +
+Enums  + +
+GinScope
+ + + + + + +
+Annotation Types  + +
+GinjectorInterfaceType +
+ModuleClasses +
+RootBindings
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/package-summary.html new file mode 100644 index 0000000..ffad1ab --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/package-summary.html @@ -0,0 +1,237 @@ + + + + + + +com.google.gwt.inject.rebind + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind +

+ + + + + + + + + +
+Interface Summary
GuiceElementVisitor.GuiceElementVisitorFactoryInterface for use with Assisted Injection for creating GuiceElementVisitor
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
DoubleBindingCheckerValidate that a Ginjector hierarchy doesn't contain any duplicate bindings.
ErrorManagerManages errors that occur during the binding process.
GinjectorBindingsStores information that describes the bindings present in a given injector, + and the relationship to the other injectors in the hierarchy.
GinjectorGeneratorGenerator for implementations of Ginjector.
GinjectorNameGeneratorManages class and field names for GinjectorBindings.
GuiceBindingVisitor<T>Gathers information about Guice Bindings and adds the information to a GinjectorBindings.
GuiceBindingVisitorFactoryFactory for creating GuiceBindingVisitors.
GuiceElementVisitorGathers elements and adds them to a GinjectorBindings.
+  + +

+ + + + + + + + + +
+Enum Summary
GinScopeEnum for scopes that GIN supports.
+  + +

+ + + + + + + + + + + + + + + + + +
+Annotation Types Summary
GinjectorInterfaceTypeA binding annotation to be applied to a Class for + the type of the Ginjector interface being generated.
ModuleClassesA binding annotation to be applied to a Collection containing all GinModule + classes used to configure the current Ginjector.
RootBindingsA binding annotation to be applied to a GinjectorBindings for + the top level bindings.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/package-tree.html new file mode 100644 index 0000000..64a7370 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/package-tree.html @@ -0,0 +1,184 @@ + + + + + + +com.google.gwt.inject.rebind Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +

+Annotation Type Hierarchy +

+ +

+Enum Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/FieldLiteral.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/FieldLiteral.html new file mode 100644 index 0000000..64b4cf8 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/FieldLiteral.html @@ -0,0 +1,330 @@ + + + + + + +FieldLiteral + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class FieldLiteral<T>

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.reflect.MemberLiteral<T,java.lang.reflect.Field>
+      extended by com.google.gwt.inject.rebind.reflect.FieldLiteral<T>
+
+
+
+
public class FieldLiteral<T>
extends MemberLiteral<T,java.lang.reflect.Field>
+ + +

+Generic field representation preserving the fields type parametrization. +

+ +

+

+
See Also:
TypeLiteral
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static + + + + +
+<T> FieldLiteral<T>
+
get(java.lang.reflect.Field field, + TypeLiteral<T> declaringType) + +
+          Returns a new field literal based on the passed field and its declaring + type.
+ TypeLiteral<?>getFieldType() + +
+          Returns the field's type, if appropriate parametrized with the declaring + class's type parameters.
+ booleanisLegacyFinalField() + +
+          Returns true if this is a final field that past versions of Gin + allowed to be set by member injection.
+ java.lang.StringtoString() + +
+          Returns the field's declaring type and name in the format used in javadoc, + e.g.
+ + + + + + + +
Methods inherited from class com.google.gwt.inject.rebind.reflect.MemberLiteral
getAnnotation, getAnnotations, getBindingAnnotation, getBindingAnnotation, getDeclaringType, getMember, getModifiers, getName, getRawDeclaringType, isAnnotationPresent, isDefaultAccess, isPrivate, isPublic, isStatic
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+get

+
+public static <T> FieldLiteral<T> get(java.lang.reflect.Field field,
+                                      TypeLiteral<T> declaringType)
+
+
Returns a new field literal based on the passed field and its declaring + type. +

+

+
Parameters:
field - field for which the literal is created
declaringType - the field's declaring type +
Returns:
new field literal
+
+
+
+ +

+getFieldType

+
+public TypeLiteral<?> getFieldType()
+
+
Returns the field's type, if appropriate parametrized with the declaring + class's type parameters. +

+

+ +
Returns:
field type
+
+
+
+ +

+isLegacyFinalField

+
+public boolean isLegacyFinalField()
+
+
Returns true if this is a final field that past versions of Gin + allowed to be set by member injection. + +

Past versions of Gin used native Javascript to set the values of + inaccessible fields. If those fields also happened to be final, the native + code would ignore the final modifier and assign the field anyway. + +

As I (dburrows) don't feel that this is something to encourage, I'm + narrowly allowing this usage only in cases where to do otherwise would + break previously compiling code. It might be prudent to remove this + exclusion in the future, but not as part of my current work. +

+

+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Returns the field's declaring type and name in the format used in javadoc, + e.g. com.bar.Foo#baz, with resolved type parameters. +

+

+
Overrides:
toString in class java.lang.Object
+
+
+ +
Returns:
string representation for this method including the declaring type
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MemberLiteral.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MemberLiteral.html new file mode 100644 index 0000000..982237e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MemberLiteral.html @@ -0,0 +1,562 @@ + + + + + + +MemberLiteral + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class MemberLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement>

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.reflect.MemberLiteral<T,M>
+
+
+
Direct Known Subclasses:
FieldLiteral, MethodLiteral
+
+
+
+
public abstract class MemberLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement>
extends java.lang.Object
+ + +

+Generic member representation preserving the member's type parameters. +

+ +

+

+
See Also:
TypeLiteral
+
+ +

+ + + + + + + + + + + + +
+Constructor Summary
+protected MemberLiteral(M member, + TypeLiteral<T> declaringType) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ + + + + +
+<T extends java.lang.annotation.Annotation> +
+T
+
getAnnotation(java.lang.Class<T> type) + +
+          Returns this member's annotation of the passed type or null if no + matching annotation is present.
+ java.lang.annotation.Annotation[]getAnnotations() + +
+          Returns this member's annotations.
+ java.lang.annotation.AnnotationgetBindingAnnotation() + +
+          Returns this member's binding annotation or null if no such + annotation is present.
+protected  java.lang.annotation.AnnotationgetBindingAnnotation(java.lang.annotation.Annotation[] annotations) + +
+           
+ TypeLiteral<T>getDeclaringType() + +
+          Returns the type declaring this member.
+protected  MgetMember() + +
+           
+ intgetModifiers() + +
+          Returns this member's modifiers.
+ java.lang.StringgetName() + +
+          Returns this member's name.
+ java.lang.Class<?>getRawDeclaringType() + +
+          Returns this member's raw (i.e.
+ booleanisAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> type) + +
+          Returns true if an annotation of the passed type is present on + this member.
+ booleanisDefaultAccess() + +
+          Returns true if this member is declared as default access.
+ booleanisPrivate() + +
+          Returns true if this member is declared private.
+ booleanisPublic() + +
+          Returns true if this member is declared public.
+ booleanisStatic() + +
+          Returns true if this member is declared static.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+MemberLiteral

+
+protected MemberLiteral(M member,
+                        TypeLiteral<T> declaringType)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getDeclaringType

+
+public TypeLiteral<T> getDeclaringType()
+
+
Returns the type declaring this member. +

+

+ +
Returns:
declaring type
+
+
+
+ +

+getName

+
+public java.lang.String getName()
+
+
Returns this member's name. +

+

+ +
Returns:
name
+
+
+
+ +

+getRawDeclaringType

+
+public java.lang.Class<?> getRawDeclaringType()
+
+
Returns this member's raw (i.e. non-parametrized) declaring type. +

+

+ +
Returns:
raw declaring type
+
+
+
+ +

+getModifiers

+
+public int getModifiers()
+
+
Returns this member's modifiers. +

+

+ +
Returns:
modifiers
+
+
+
+ +

+getAnnotations

+
+public java.lang.annotation.Annotation[] getAnnotations()
+
+
Returns this member's annotations. +

+

+ +
Returns:
annotations
+
+
+
+ +

+getAnnotation

+
+public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> type)
+
+
Returns this member's annotation of the passed type or null if no + matching annotation is present. +

+

+
Parameters:
type - annotation type +
Returns:
annotation instance or null if no matching annotation + exists
+
+
+
+ +

+isAnnotationPresent

+
+public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> type)
+
+
Returns true if an annotation of the passed type is present on + this member. +

+

+
Parameters:
type - annotation type to check for +
Returns:
true if the annotation is present
+
+
+
+ +

+getBindingAnnotation

+
+public java.lang.annotation.Annotation getBindingAnnotation()
+
+
Returns this member's binding annotation or null if no such + annotation is present. +

+

+ +
Returns:
binding annotation or null
+
+
+
+ +

+isDefaultAccess

+
+public boolean isDefaultAccess()
+
+
Returns true if this member is declared as default access. +

+

+ +
Returns:
true if default access
+
+
+
+ +

+isPublic

+
+public boolean isPublic()
+
+
Returns true if this member is declared public. +

+

+ +
Returns:
true if public
+
+
+
+ +

+isPrivate

+
+public boolean isPrivate()
+
+
Returns true if this member is declared private. +

+

+ +
Returns:
true if private
+
+
+
+ +

+isStatic

+
+public boolean isStatic()
+
+
Returns true if this member is declared static. +

+

+ +
Returns:
true if static
+
+
+
+ +

+getBindingAnnotation

+
+protected java.lang.annotation.Annotation getBindingAnnotation(java.lang.annotation.Annotation[] annotations)
+
+
+
+
+
+
+ +

+getMember

+
+protected M getMember()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MethodLiteral.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MethodLiteral.html new file mode 100644 index 0000000..eb2dd02 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/MethodLiteral.html @@ -0,0 +1,533 @@ + + + + + + +MethodLiteral + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class MethodLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement & java.lang.reflect.GenericDeclaration>

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.reflect.MemberLiteral<T,M>
+      extended by com.google.gwt.inject.rebind.reflect.MethodLiteral<T,M>
+
+
+
+
public abstract class MethodLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement & java.lang.reflect.GenericDeclaration>
extends MemberLiteral<T,M>
+ + +

+Generic method and constructor representation that preserves the member's + parametrization and allows common operations on methods and constructors + where appropriate. +

+ +

+

+
See Also:
TypeLiteral
+
+ +

+ + + + + + + + + + + + +
+Constructor Summary
+protected MethodLiteral(M member, + TypeLiteral<T> declaringType) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static + + + + +
+<T> MethodLiteral<T,java.lang.reflect.Constructor<?>>
+
get(java.lang.reflect.Constructor<?> constructor, + TypeLiteral<T> declaringType) + +
+          Creates a new MethodLiteral based on the passed constructor and + its declaring type.
+static + + + + +
+<T> MethodLiteral<T,java.lang.reflect.Method>
+
get(java.lang.reflect.Method method, + TypeLiteral<T> declaringType) + +
+          Creates a new MethodLiteral based on the passed method and its + declaring type.
+ java.util.List<TypeLiteral<?>>getExceptionTypes() + +
+          Returns this method's exception types, if appropriate parametrized with + the declaring class's type parameters.
+protected abstract  java.lang.annotation.Annotation[][]getParameterAnnotations() + +
+           
+ java.util.List<Key<?>>getParameterKeys() + +
+          Returns this method's parameter keys, if appropriate parametrized with the + declaring class's type parameters.
+ java.util.List<TypeLiteral<?>>getParameterTypes() + +
+          Returns this method's parameter types, if appropriate parametrized with + the declaring class's type parameters.
+abstract  java.util.List<java.lang.reflect.Type>getRawParameterTypes() + +
+          Returns this method's parameter types without any type parametrization + applied.
+abstract  TypeLiteral<?>getReturnType() + +
+          Returns this method's return type, if appropriate parametrized with the + declaring class's type parameters.
+ java.lang.reflect.TypeVariable<?>[]getTypeParameters() + +
+          Returns this method's type parameters.
+abstract  booleanisConstructor() + +
+          Returns true if this method literal is based on a constructor.
+ java.lang.StringtoString() + +
+          Returns the method's declaring type and name in the format used in + javadoc, e.g.
+ + + + + + + +
Methods inherited from class com.google.gwt.inject.rebind.reflect.MemberLiteral
getAnnotation, getAnnotations, getBindingAnnotation, getBindingAnnotation, getDeclaringType, getMember, getModifiers, getName, getRawDeclaringType, isAnnotationPresent, isDefaultAccess, isPrivate, isPublic, isStatic
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+MethodLiteral

+
+protected MethodLiteral(M member,
+                        TypeLiteral<T> declaringType)
+
+
+ + + + + + + + +
+Method Detail
+ +

+get

+
+public static <T> MethodLiteral<T,java.lang.reflect.Method> get(java.lang.reflect.Method method,
+                                                                TypeLiteral<T> declaringType)
+
+
Creates a new MethodLiteral based on the passed method and its + declaring type. +

+

+
Parameters:
method - method for which the literal is constructed
declaringType - type declaring the passed method +
Returns:
new method literal
+
+
+
+ +

+get

+
+public static <T> MethodLiteral<T,java.lang.reflect.Constructor<?>> get(java.lang.reflect.Constructor<?> constructor,
+                                                                        TypeLiteral<T> declaringType)
+
+
Creates a new MethodLiteral based on the passed constructor and + its declaring type. +

+

+
Parameters:
constructor - constructor for which the literal is constructed
declaringType - type declaring the constructor +
Returns:
new method literal
+
+
+
+ +

+getParameterKeys

+
+public java.util.List<Key<?>> getParameterKeys()
+
+
Returns this method's parameter keys, if appropriate parametrized with the + declaring class's type parameters. +

+

+ +
Returns:
parameter keys
+
+
+
+ +

+getParameterTypes

+
+public java.util.List<TypeLiteral<?>> getParameterTypes()
+
+
Returns this method's parameter types, if appropriate parametrized with + the declaring class's type parameters. +

+

+ +
Returns:
parameter types
+
+
+
+ +

+getRawParameterTypes

+
+public abstract java.util.List<java.lang.reflect.Type> getRawParameterTypes()
+
+
Returns this method's parameter types without any type parametrization + applied. + + For example, &lt;T> void foo(T t) will return a list with a single + entry, a TypeVariable with name T and bounded by + java.lang.Object. +

+

+ +
Returns:
raw parameter types
+
+
+
+ +

+getExceptionTypes

+
+public java.util.List<TypeLiteral<?>> getExceptionTypes()
+
+
Returns this method's exception types, if appropriate parametrized with + the declaring class's type parameters. +

+

+ +
Returns:
exception types
+
+
+
+ +

+getTypeParameters

+
+public java.lang.reflect.TypeVariable<?>[] getTypeParameters()
+
+
Returns this method's type parameters. +

+

+ +
Returns:
type parameters
+
+
+
+ +

+getReturnType

+
+public abstract TypeLiteral<?> getReturnType()
+
+
Returns this method's return type, if appropriate parametrized with the + declaring class's type parameters. +

+

+ +
Returns:
return type
+
+
+
+ +

+isConstructor

+
+public abstract boolean isConstructor()
+
+
Returns true if this method literal is based on a constructor. +

+

+
+
+
+
+ +

+getParameterAnnotations

+
+protected abstract java.lang.annotation.Annotation[][] getParameterAnnotations()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Returns the method's declaring type and name in the format used in + javadoc, e.g. com.bar.Foo#baz(com.bar.Foo, com.bar.Bar), with + resolved type parameters. +

+

+
Overrides:
toString in class java.lang.Object
+
+
+ +
Returns:
string representation for this method including the declaring type
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/NoSourceNameException.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/NoSourceNameException.html new file mode 100644 index 0000000..a7b74a5 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/NoSourceNameException.html @@ -0,0 +1,244 @@ + + + + + + +NoSourceNameException + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class NoSourceNameException

+
+java.lang.Object
+  extended by java.lang.Throwable
+      extended by java.lang.Exception
+          extended by com.google.gwt.inject.rebind.reflect.NoSourceNameException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class NoSourceNameException
extends java.lang.Exception
+ + +

+Thrown if a source name is requested but cannot be provided. +

+ +

+

+
Author:
+
schmitt@google.com (Peter Schmitt)
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
NoSourceNameException(java.lang.reflect.Type type) + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+NoSourceNameException

+
+public NoSourceNameException(java.lang.reflect.Type type)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.SignatureBuilder.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.SignatureBuilder.html new file mode 100644 index 0000000..f8a91e5 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.SignatureBuilder.html @@ -0,0 +1,322 @@ + + + + + + +ReflectUtil.SignatureBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class ReflectUtil.SignatureBuilder

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder
+
+
+
Enclosing class:
ReflectUtil
+
+
+
+
public static class ReflectUtil.SignatureBuilder
extends java.lang.Object
+ + +

+Builder that produces the signature of a method. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Stringbuild() + +
+          Builds the method signature with all types in source form.
+ ReflectUtil.SignatureBuilderremoveAbstractModifier() + +
+          Removes the abstract modifier from the current modifiers (either the last + modifiers set by withModifiers(int), or the modifiers of the method + passed to ReflectUtil.signatureBuilder(com.google.gwt.inject.rebind.reflect.MethodLiteral)).
+ ReflectUtil.SignatureBuilderwithMethodName(java.lang.String methodName) + +
+          Sets the method name used in the signature.
+ ReflectUtil.SignatureBuilderwithModifiers(int modifiers) + +
+          Sets the modifiers used in the method signature.
+ ReflectUtil.SignatureBuilderwithParameterNames(java.lang.String[] parameterNames) + +
+          Sets the names to use for the method's parameters.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+build

+
+public java.lang.String build()
+                       throws NoSourceNameException
+
+
Builds the method signature with all types in source form. +

+

+ +
Throws: +
NoSourceNameException - if any type's source name cannot be + determined.
See Also:
ReflectUtil.getSourceName(Type)
+
+
+
+ +

+removeAbstractModifier

+
+public ReflectUtil.SignatureBuilder removeAbstractModifier()
+
+
Removes the abstract modifier from the current modifiers (either the last + modifiers set by withModifiers(int), or the modifiers of the method + passed to ReflectUtil.signatureBuilder(com.google.gwt.inject.rebind.reflect.MethodLiteral)). +

+

+
+
+
+
+ +

+withMethodName

+
+public ReflectUtil.SignatureBuilder withMethodName(java.lang.String methodName)
+
+
Sets the method name used in the signature. If not set, defaults to the + method's name. +

+

+
+
+
+
+ +

+withModifiers

+
+public ReflectUtil.SignatureBuilder withModifiers(int modifiers)
+
+
Sets the modifiers used in the method signature. If not set, defaults to + the method's modifiers. +

+

+
+
+
+
+ +

+withParameterNames

+
+public ReflectUtil.SignatureBuilder withParameterNames(java.lang.String[] parameterNames)
+
+
Sets the names to use for the method's parameters. The length of + parameterNames must be the same as the method's parameter count. If not + set, default names are chosen. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.html new file mode 100644 index 0000000..f8b0fff --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/ReflectUtil.html @@ -0,0 +1,596 @@ + + + + + + +ReflectUtil + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.reflect +
+Class ReflectUtil

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.reflect.ReflectUtil
+
+
+
+
public class ReflectUtil
extends java.lang.Object
+ + +

+Utility providing helper methods around reflection. +

+ +

+


+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classReflectUtil.SignatureBuilder + +
+          Builder that produces the signature of a method.
+  + + + + + + + + + + +
+Constructor Summary
ReflectUtil() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.StringformatParameterName(int position) + +
+          Returns a string representing a parameter name for a method signature.
+static Key<?>getProvidedKey(Key<?> key) + +
+          Given a parameterized type (such as a Provider<Foo>) return the + parameter (Foo).
+static java.lang.StringgetSourceName(java.lang.reflect.Type type) + +
+          Returns a string representation of the passed type's name while ensuring + that all type names (base and parameters) are converted to source type + names.
+static java.lang.StringgetSourceName(TypeLiteral<?> typeLiteral) + +
+          Alternate toString method for TypeLiterals that fixes a JDK bug that was + replicated in Guice.
+static java.lang.StringgetUserPackageName(Key<?> key) + +
+          Return the name of the package from which the given key can be used.
+static java.lang.StringgetUserPackageName(TypeLiteral<?> typeLiteral) + +
+          Return the name of the package from which the given type can be used.
+static booleanhasAccessibleDefaultConstructor(java.lang.Class<?> clazz) + +
+          Returns true if the given class has a non-private default + constructor, or has no constructor at all.
+static booleanisClassOrInterface(java.lang.reflect.Type type) + +
+          Returns true if the passed type is either a class or an interface + (but not a primitive, enum or similar).
+static booleanisPrivate(java.lang.Class<?> type) + +
+          Returns true if the passed type's visibility is private.
+static booleanisPrivate(java.lang.reflect.Member member) + +
+          Returns true if the passed member's visibility is private.
+static booleanisPrivate(TypeLiteral<?> type) + +
+          Returns true if the passed type's visibility is private.
+static booleanisPublic(java.lang.Class<?> type) + +
+          Returns true if the passed type's visibility is public.
+static intnonAbstractModifiers(MethodLiteral<?,java.lang.reflect.Method> method) + +
+          If present, strips the "abstract" modifier from the passed method's + modifiers.
+static ReflectUtil.SignatureBuildersignatureBuilder(MethodLiteral<?,?> method) + +
+          Builds the signature of a method with all types in source form.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ReflectUtil

+
+public ReflectUtil()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getSourceName

+
+public static java.lang.String getSourceName(TypeLiteral<?> typeLiteral)
+                                      throws NoSourceNameException
+
+
Alternate toString method for TypeLiterals that fixes a JDK bug that was + replicated in Guice. See + + the related Guice bug for details. + + Also replaces all binary with source names in the types involved (base + type and type parameters). +

+

+
Parameters:
typeLiteral - type for which string will be returned +
Returns:
String representation of type +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getSourceName

+
+public static java.lang.String getSourceName(java.lang.reflect.Type type)
+                                      throws NoSourceNameException
+
+
Returns a string representation of the passed type's name while ensuring + that all type names (base and parameters) are converted to source type + names. +

+

+
Parameters:
type - type for which string will be returned +
Returns:
String representation of type +
Throws: +
NoSourceNameException - if source name is not available for type
+
+
+
+ +

+getUserPackageName

+
+public static java.lang.String getUserPackageName(TypeLiteral<?> typeLiteral)
+
+
Return the name of the package from which the given type can be used. + +

Returns a package from which all the type names contained in the given + type literal are visible. Throws IllegalArgumentException if there + is no such package. If there are multiple such packages, then the type + name can be used from any package; the package containing the outermost + class is used arbitrarily. + +

This method is intentionally not overloaded on Class, because it's + normally an error to use a raw Class token to determine the package in + which to manipulate a type. +

+

+
+
+
+
+ +

+getUserPackageName

+
+public static java.lang.String getUserPackageName(Key<?> key)
+
+
Return the name of the package from which the given key can be used. + +

Returns a package from which all the type names contained in the given + key are visible. Throws IllegalArgumentException if there is no + such package. +

+

+
+
+
+
+ +

+isPublic

+
+public static boolean isPublic(java.lang.Class<?> type)
+
+
Returns true if the passed type's visibility is public. +

+

+
+
+
+
+ +

+isPrivate

+
+public static boolean isPrivate(java.lang.Class<?> type)
+
+
Returns true if the passed type's visibility is private. +

+

+
+
+
+
+ +

+isPrivate

+
+public static boolean isPrivate(TypeLiteral<?> type)
+
+
Returns true if the passed type's visibility is private. +

+

+
+
+
+
+ +

+isPrivate

+
+public static boolean isPrivate(java.lang.reflect.Member member)
+
+
Returns true if the passed member's visibility is private. +

+

+
+
+
+
+ +

+signatureBuilder

+
+public static ReflectUtil.SignatureBuilder signatureBuilder(MethodLiteral<?,?> method)
+
+
Builds the signature of a method with all types in source form. +

+

+
+
+
+
+ +

+formatParameterName

+
+public static java.lang.String formatParameterName(int position)
+
+
Returns a string representing a parameter name for a method signature. + +

Use this method to keep parameter names the same throughout Gin code. + Creating synthetic parameter names is necessary since java reflection does + not expose source parameter names. +

+

+
Parameters:
position - position of the parameter in the signature +
Returns:
parameter name
+
+
+
+ +

+nonAbstractModifiers

+
+public static int nonAbstractModifiers(MethodLiteral<?,java.lang.reflect.Method> method)
+
+
If present, strips the "abstract" modifier from the passed method's + modifiers. + +

Useful since interface methods are abstract but we're often writing an + implementation for them. +

+

+
+
+
+
+ +

+isClassOrInterface

+
+public static boolean isClassOrInterface(java.lang.reflect.Type type)
+
+
Returns true if the passed type is either a class or an interface + (but not a primitive, enum or similar). +

+

+
Parameters:
type - class to be checked +
Returns:
true if the passed type is a class or interface
+
+
+
+ +

+getProvidedKey

+
+public static Key<?> getProvidedKey(Key<?> key)
+
+
Given a parameterized type (such as a Provider<Foo>) return the + parameter (Foo). +

+

+
+
+
+
+ +

+hasAccessibleDefaultConstructor

+
+public static boolean hasAccessibleDefaultConstructor(java.lang.Class<?> clazz)
+
+
Returns true if the given class has a non-private default + constructor, or has no constructor at all. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-frame.html new file mode 100644 index 0000000..62be2f2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-frame.html @@ -0,0 +1,51 @@ + + + + + + +com.google.gwt.inject.rebind.reflect + + + + + + + + + + + +com.google.gwt.inject.rebind.reflect + + + + +
+Classes  + +
+FieldLiteral +
+MemberLiteral +
+MethodLiteral +
+ReflectUtil +
+ReflectUtil.SignatureBuilder
+ + + + + + +
+Exceptions  + +
+NoSourceNameException
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-summary.html new file mode 100644 index 0000000..a45a464 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-summary.html @@ -0,0 +1,187 @@ + + + + + + +com.google.gwt.inject.rebind.reflect + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.reflect +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
FieldLiteral<T>Generic field representation preserving the fields type parametrization.
MemberLiteral<T,M extends Member & AnnotatedElement>Generic member representation preserving the member's type parameters.
MethodLiteral<T,M extends Member & AnnotatedElement & GenericDeclaration>Generic method and constructor representation that preserves the member's + parametrization and allows common operations on methods and constructors + where appropriate.
ReflectUtilUtility providing helper methods around reflection.
ReflectUtil.SignatureBuilderBuilder that produces the signature of a method.
+  + +

+ + + + + + + + + +
+Exception Summary
NoSourceNameExceptionThrown if a source name is requested but cannot be provided.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-tree.html new file mode 100644 index 0000000..52e6e19 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/reflect/package-tree.html @@ -0,0 +1,158 @@ + + + + + + +com.google.gwt.inject.rebind.reflect Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.reflect +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/BindingResolver.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/BindingResolver.html new file mode 100644 index 0000000..ef1ff9a --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/BindingResolver.html @@ -0,0 +1,276 @@ + + + + + + +BindingResolver + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class BindingResolver

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.BindingResolver
+
+
+
+
public class BindingResolver
extends java.lang.Object
+ + +

+Drives the top level Binding Resolution algorithm. This performs the following steps: +

    +
  1. Create a dependency graph representing all of the unresolved keys (required and optional) + for a Ginjector in the hierarchy. This graph will have internal nodes for all of the implicit + bindings that need to be created, and leaf nodes (no outgoing edges) for all bindings that are + already available to the Ginjector. See DependencyExplorer. +
  2. +
  3. Verify that there are no errors in the dependency graph. Errors are detected and reported as + described in UnresolvedBindingValidator which also makes use of EagerCycleFinder. +
  4. +
  5. Determine which injector each of the implicit bindings should be placed in, according to the + constraints described in BindingPositioner. +
  6. +
  7. Install each implicit binding, and any ParentBindings necessary to inherit + dependencies from higher in the hierarchy, to the Ginjectors. See BindingInstaller. +
+

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
BindingResolver(DependencyExplorer.Factory explorerFactory, + UnresolvedBindingValidator.Factory validatorFactory, + com.google.gwt.inject.rebind.resolution.BindingInstaller.Factory installerFactory, + com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidresolveBindings(GinjectorBindings origin) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+BindingResolver

+
+@Inject
+public BindingResolver(DependencyExplorer.Factory explorerFactory,
+                              UnresolvedBindingValidator.Factory validatorFactory,
+                              com.google.gwt.inject.rebind.resolution.BindingInstaller.Factory installerFactory,
+                              com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+resolveBindings

+
+public void resolveBindings(GinjectorBindings origin)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.DependencyExplorerOutput.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.DependencyExplorerOutput.html new file mode 100644 index 0000000..0acbb6f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.DependencyExplorerOutput.html @@ -0,0 +1,363 @@ + + + + + + +DependencyExplorer.DependencyExplorerOutput + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class DependencyExplorer.DependencyExplorerOutput

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput
+
+
+
Enclosing class:
DependencyExplorer
+
+
+
+
public static class DependencyExplorer.DependencyExplorerOutput
extends java.lang.Object
+ + +

+Class that packages up all the output of exploring the unresolved dependencies for a Ginjector. + This contains the DependencyGraph itself, as well as additional information about the + nodes. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.Collection<java.util.Map.Entry<Key<?>,java.lang.String>>getBindingErrors() + +
+          Returns pairs containing the Key<?>s that were unavailable from the injector + hierarchy but that we were unable to create implicit bindings for and an error message + describing the problem we encountered while creating the implicit binding.
+ DependencyGraphgetGraph() + +
+          Returns the DependencyGraph containing information about nodes found from the origin.
+ java.util.Collection<java.util.Map.Entry<Key<?>,Binding>>getImplicitBindings() + +
+          Returns map entries containing the Key<?>s that weren't already available and the + Binding we created (implicitly) for it.
+ java.util.Collection<Key<?>>getImplicitlyBoundKeys() + +
+          Return the Key<?>s that weren't already available and for which we successfully + created implicit bindings.
+ java.util.Map<Key<?>,GinjectorBindings>getPreExistingLocations() + +
+          Returns a map from each Key<?> that was already available in the injector hierarchy + to the Ginjector on which it was found.
+ voidremoveBinding(Key<?> key) + +
+          Removes an implicit binding from the information being tracked.
+ intsize() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+size

+
+public int size()
+
+
+
+
+
+
+ +

+getPreExistingLocations

+
+public java.util.Map<Key<?>,GinjectorBindings> getPreExistingLocations()
+
+
Returns a map from each Key<?> that was already available in the injector hierarchy + to the Ginjector on which it was found. +

+

+
+
+
+
+ +

+getImplicitlyBoundKeys

+
+public java.util.Collection<Key<?>> getImplicitlyBoundKeys()
+
+
Return the Key<?>s that weren't already available and for which we successfully + created implicit bindings. +

+

+
+
+
+
+ +

+getBindingErrors

+
+public java.util.Collection<java.util.Map.Entry<Key<?>,java.lang.String>> getBindingErrors()
+
+
Returns pairs containing the Key<?>s that were unavailable from the injector + hierarchy but that we were unable to create implicit bindings for and an error message + describing the problem we encountered while creating the implicit binding. +

+

+
+
+
+
+ +

+getImplicitBindings

+
+public java.util.Collection<java.util.Map.Entry<Key<?>,Binding>> getImplicitBindings()
+
+
Returns map entries containing the Key<?>s that weren't already available and the + Binding we created (implicitly) for it. If there was an error creating the implicit + binding, the key will not be found here. Look in getBindingErrors() instead. +

+

+
+
+
+
+ +

+removeBinding

+
+public void removeBinding(Key<?> key)
+
+
Removes an implicit binding from the information being tracked. +

+

+
+
+
+
+ +

+getGraph

+
+public DependencyGraph getGraph()
+
+
Returns the DependencyGraph containing information about nodes found from the origin. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.Factory.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.Factory.html new file mode 100644 index 0000000..7cedbd8 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.Factory.html @@ -0,0 +1,207 @@ + + + + + + +DependencyExplorer.Factory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Interface DependencyExplorer.Factory

+
+
Enclosing class:
DependencyExplorer
+
+
+
+
public static interface DependencyExplorer.Factory
+ + +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ DependencyExplorercreate(com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+DependencyExplorer create(com.google.gwt.core.ext.TreeLogger logger)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.html new file mode 100644 index 0000000..cd40256 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyExplorer.html @@ -0,0 +1,290 @@ + + + + + + +DependencyExplorer + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class DependencyExplorer

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.DependencyExplorer
+
+
+
+
public class DependencyExplorer
extends java.lang.Object
+ + +

+Explores the unresolved dependencies for a given Ginjector and builds the DependencyGraph + representing all of the implicit bindings that need to be created to satisfy the dependencies. + +

See BindingResolver for how this fits into the overall algorithm for resolution. +

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static classDependencyExplorer.DependencyExplorerOutput + +
+          Class that packages up all the output of exploring the unresolved dependencies for a Ginjector.
+static interfaceDependencyExplorer.Factory + +
+           
+  + + + + + + + + + + +
+Constructor Summary
DependencyExplorer(ImplicitBindingCreator.Factory bindingCreatorFactory, + com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ DependencyExplorer.DependencyExplorerOutputexplore(GinjectorBindings origin) + +
+          Explore the unresolved dependencies in the origin Ginjector, and create the corresponding + dependency graph.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DependencyExplorer

+
+@Inject
+public DependencyExplorer(ImplicitBindingCreator.Factory bindingCreatorFactory,
+                                 com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+explore

+
+public DependencyExplorer.DependencyExplorerOutput explore(GinjectorBindings origin)
+
+
Explore the unresolved dependencies in the origin Ginjector, and create the corresponding + dependency graph. Also gathers information about key in the dependency graph, such as which + Ginjector it is already available on, or what implicit binding was created for it. +

+

+
Parameters:
origin - the ginjector to build a dependency graph for
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.Builder.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.Builder.html new file mode 100644 index 0000000..c973b5e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.Builder.html @@ -0,0 +1,276 @@ + + + + + + +DependencyGraph.Builder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class DependencyGraph.Builder

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.DependencyGraph.Builder
+
+
+
Enclosing class:
DependencyGraph
+
+
+
+
public static class DependencyGraph.Builder
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
DependencyGraph.Builder(GinjectorBindings origin) + +
+          Creates a Builder that constructs a new DependencyGraph for the given origin Ginjector.
+  + + + + + + + + + + + + + + + +
+Method Summary
+ DependencyGraph.BuilderaddEdge(Dependency dependency) + +
+           
+ DependencyGraphbuild() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DependencyGraph.Builder

+
+public DependencyGraph.Builder(GinjectorBindings origin)
+
+
Creates a Builder that constructs a new DependencyGraph for the given origin Ginjector. +

+

+
Parameters:
origin - the origin Ginjector
+
+ + + + + + + + +
+Method Detail
+ +

+addEdge

+
+public DependencyGraph.Builder addEdge(Dependency dependency)
+
+
+
+
+
+
+ +

+build

+
+public DependencyGraph build()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.GraphPruner.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.GraphPruner.html new file mode 100644 index 0000000..4f6212d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.GraphPruner.html @@ -0,0 +1,280 @@ + + + + + + +DependencyGraph.GraphPruner + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class DependencyGraph.GraphPruner

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.DependencyGraph.GraphPruner
+
+
+
Enclosing class:
DependencyGraph
+
+
+
+
public static class DependencyGraph.GraphPruner
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
DependencyGraph.GraphPruner(DependencyGraph source) + +
+          Create a DependencyGraph.GraphPruner for building a new DependencyGraph by (destructively!) removing + edges from an existing DependencyGraph.
+  + + + + + + + + + + + + + + + +
+Method Summary
+ DependencyGraph.GraphPrunerremove(Key<?> key) + +
+          Removes the given key, all its incoming edges, and all its outgoing edges, from the graph.
+ DependencyGraphupdate() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DependencyGraph.GraphPruner

+
+public DependencyGraph.GraphPruner(DependencyGraph source)
+
+
Create a DependencyGraph.GraphPruner for building a new DependencyGraph by (destructively!) removing + edges from an existing DependencyGraph. +

+

+
Parameters:
source - the DependencyGraph to use as the base (will be mutated)
+
+ + + + + + + + +
+Method Detail
+ +

+remove

+
+public DependencyGraph.GraphPruner remove(Key<?> key)
+
+
Removes the given key, all its incoming edges, and all its outgoing edges, from the graph. +

+

+
+
+
+
+ +

+update

+
+public DependencyGraph update()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.html new file mode 100644 index 0000000..71c7ef7 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/DependencyGraph.html @@ -0,0 +1,347 @@ + + + + + + +DependencyGraph + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class DependencyGraph

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.DependencyGraph
+
+
+
+
public class DependencyGraph
extends java.lang.Object
+ + +

+A graph of the dependency information between types that need to be injected + at a given injector, called the origin. + +

+ A DependencyGraph consists of a set of dependencies linking + dependency nodes (keys). Each edge explains how a particular node came to be + required: for instance, a key may be required in the @Inject + constructor of a class, or it might be required by the Ginjector. There are + two kinds of dependency nodes: +

+

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static classDependencyGraph.Builder + +
+           
+static classDependencyGraph.GraphPruner + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Iterable<Key<?>>getAllKeys() + +
+          Returns all the keys that appear in the Dependency Graph, other than the "common root", + Dependency.GINJECTOR.
+ java.util.Collection<Dependency>getDependenciesOf(Key<?> key) + +
+           
+ java.util.Collection<Dependency>getDependenciesTargeting(Key<?> key) + +
+           
+ GinjectorBindingsgetOrigin() + +
+           
+ intsize() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+size

+
+public int size()
+
+
+
+
+
+
+ +

+getOrigin

+
+public GinjectorBindings getOrigin()
+
+
+
+
+
+
+ +

+getDependenciesOf

+
+public java.util.Collection<Dependency> getDependenciesOf(Key<?> key)
+
+
+
+
+
+
+ +

+getDependenciesTargeting

+
+public java.util.Collection<Dependency> getDependenciesTargeting(Key<?> key)
+
+
+
+
+
+
+ +

+getAllKeys

+
+public java.lang.Iterable<Key<?>> getAllKeys()
+
+
Returns all the keys that appear in the Dependency Graph, other than the "common root", + Dependency.GINJECTOR. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/EagerCycleFinder.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/EagerCycleFinder.html new file mode 100644 index 0000000..efcc99b --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/EagerCycleFinder.html @@ -0,0 +1,267 @@ + + + + + + +EagerCycleFinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class EagerCycleFinder

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.EagerCycleFinder
+
+
+
+
public class EagerCycleFinder
extends java.lang.Object
+ + +

+Searches for "eager" cycles in the dependency graph. These are cycles that do not pass through + a Provider or AsyncProvider. + +

This only finds cycles that are necessary to resolve the dependencies for the current origin + Ginjector. + +

Reports errors including the detected cycle and the path that led here from the unresolved + bindings in the ginjector to the global ErrorManager. + +

See BindingResolver for how this fits into the overall algorithm for resolution. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
EagerCycleFinder(ErrorManager errorManager) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ booleanfindAndReportCycles(DependencyGraph graph) + +
+          Detects cycles in the given graph.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+EagerCycleFinder

+
+@Inject
+public EagerCycleFinder(ErrorManager errorManager)
+
+
+ + + + + + + + +
+Method Detail
+ +

+findAndReportCycles

+
+public boolean findAndReportCycles(DependencyGraph graph)
+
+
Detects cycles in the given graph. +

+

+ +
Returns:
true if any cycles were detected
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.BindingCreationException.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.BindingCreationException.html new file mode 100644 index 0000000..f98d96e --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.BindingCreationException.html @@ -0,0 +1,250 @@ + + + + + + +ImplicitBindingCreator.BindingCreationException + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class ImplicitBindingCreator.BindingCreationException

+
+java.lang.Object
+  extended by java.lang.Throwable
+      extended by java.lang.Exception
+          extended by com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator.BindingCreationException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
Enclosing class:
ImplicitBindingCreator
+
+
+
+
public static class ImplicitBindingCreator.BindingCreationException
extends java.lang.Exception
+ + +

+Exception thrown to indicate an error occurred during binding creation. +

+ +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
ImplicitBindingCreator.BindingCreationException(java.lang.String msgFmt, + java.lang.Object... args) + +
+          Create a new BindingCreationException using the given format string and arguments.
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ImplicitBindingCreator.BindingCreationException

+
+public ImplicitBindingCreator.BindingCreationException(java.lang.String msgFmt,
+                                                       java.lang.Object... args)
+
+
Create a new BindingCreationException using the given format string and arguments. Will + create an exception with a message constructed with String.format(msgFmt, args). +

+

+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.Factory.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.Factory.html new file mode 100644 index 0000000..c35590a --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.Factory.html @@ -0,0 +1,207 @@ + + + + + + +ImplicitBindingCreator.Factory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Interface ImplicitBindingCreator.Factory

+
+
Enclosing class:
ImplicitBindingCreator
+
+
+
+
public static interface ImplicitBindingCreator.Factory
+ + +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ ImplicitBindingCreatorcreate(com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+ImplicitBindingCreator create(com.google.gwt.core.ext.TreeLogger logger)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.html new file mode 100644 index 0000000..504197c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ImplicitBindingCreator.html @@ -0,0 +1,292 @@ + + + + + + +ImplicitBindingCreator + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class ImplicitBindingCreator

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator
+
+
+
+
public class ImplicitBindingCreator
extends java.lang.Object
+ + +

+Class responsible for creating implicit bindings. This returns the binding entry + that should be used for the given type. It does not concern itself with satisfying + the dependencies or with figuring out where the binding should appear. For that, + see BindingResolver. +

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static classImplicitBindingCreator.BindingCreationException + +
+          Exception thrown to indicate an error occurred during binding creation.
+static interfaceImplicitBindingCreator.Factory + +
+           
+  + + + + + + + + + + +
+Constructor Summary
ImplicitBindingCreator(BindingFactory bindingFactory, + com.google.gwt.core.ext.GeneratorContext generatorContext, + com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ Bindingcreate(Key<?> key) + +
+          Creates the implicit binding
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ImplicitBindingCreator

+
+@Inject
+public ImplicitBindingCreator(BindingFactory bindingFactory,
+                                     com.google.gwt.core.ext.GeneratorContext generatorContext,
+                                     com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+create

+
+public Binding create(Key<?> key)
+               throws ImplicitBindingCreator.BindingCreationException
+
+
Creates the implicit binding +

+

+ +
Throws: +
ImplicitBindingCreator.BindingCreationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/PathFinder.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/PathFinder.html new file mode 100644 index 0000000..ea3b7e0 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/PathFinder.html @@ -0,0 +1,344 @@ + + + + + + +PathFinder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class PathFinder

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.PathFinder
+
+
+
+
public class PathFinder
extends java.lang.Object
+ + +

+Finds the shortest path from the edges in the root set to any of one or more destination keys. + +

This is used in EagerCycleFinder and UnresolvedBindingValidator for explaining + why a given error/cycle was reachable from the Ginjector. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
PathFinder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ PathFinderaddDestinations(Key<?>... destinations) + +
+          Add destinations to be used for the next search.
+ PathFinderaddRoots(Key<?>... roots) + +
+           
+ java.util.List<Dependency>findShortestPath() + +
+          Find the shortest path from an unresolved edge in the roots to a key in the destinations.
+ PathFinderonGraph(DependencyGraph graph) + +
+           
+ PathFinderwithOnlyRequiredEdges(boolean onlyRequiredEdges) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+PathFinder

+
+public PathFinder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onGraph

+
+public PathFinder onGraph(DependencyGraph graph)
+
+
+
+
+
+
+ +

+addRoots

+
+public PathFinder addRoots(Key<?>... roots)
+
+
+
+
+
+
+ +

+addDestinations

+
+public PathFinder addDestinations(Key<?>... destinations)
+
+
Add destinations to be used for the next search. The shortest path from the unresolved set + to any member of the destination set will be returned from findShortestPath(). +

+

+
+
+
+
+ +

+withOnlyRequiredEdges

+
+public PathFinder withOnlyRequiredEdges(boolean onlyRequiredEdges)
+
+
+
Parameters:
onlyRequiredEdges - if true, only required edges will be considered when searching for the + path
+
+
+
+ +

+findShortestPath

+
+public java.util.List<Dependency> findShortestPath()
+
+
Find the shortest path from an unresolved edge in the roots to a key in the destinations. + +

Implemented as a Breadth-first search from the destination set back to the origin. +

+

+ +
Returns:
the shortest path from the roots to any of the destinations specified that passes + through edges meeting the criteria; can be empty if destination is already in the root + set, or null if no path exists
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/RequiredKeySet.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/RequiredKeySet.html new file mode 100644 index 0000000..59c8e82 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/RequiredKeySet.html @@ -0,0 +1,256 @@ + + + + + + +RequiredKeySet + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class RequiredKeySet

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.RequiredKeySet
+
+
+
+
public class RequiredKeySet
extends java.lang.Object
+ + +

+Computes the set of required keys in a given DependencyGraph. A key is considered + required if there exists a path from the dependencies of the origin Ginjector to the key that + only passes through required edges. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
RequiredKeySet(DependencyGraph graph) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ booleanisRequired(Key<?> key) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+RequiredKeySet

+
+public RequiredKeySet(DependencyGraph graph)
+
+
+ + + + + + + + +
+Method Detail
+ +

+isRequired

+
+public boolean isRequired(Key<?> key)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ResolutionModule.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ResolutionModule.html new file mode 100644 index 0000000..78442e4 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/ResolutionModule.html @@ -0,0 +1,270 @@ + + + + + + +ResolutionModule + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class ResolutionModule

+
+java.lang.Object
+  extended by com.google.inject.PrivateModule
+      extended by com.google.gwt.inject.rebind.resolution.ResolutionModule
+
+
+
All Implemented Interfaces:
Module
+
+
+
+
public class ResolutionModule
extends PrivateModule
+ + +

+Bindings for components of the resolver. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
ResolutionModule() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidconfigure() + +
+           
+ + + + + + + +
Methods inherited from class com.google.inject.PrivateModule
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindScope, configure, convertToTypes, currentStage, expose, expose, expose, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+ResolutionModule

+
+public ResolutionModule()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+protected void configure()
+
+
+
Specified by:
configure in class PrivateModule
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.Factory.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.Factory.html new file mode 100644 index 0000000..93f43de --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.Factory.html @@ -0,0 +1,207 @@ + + + + + + +UnresolvedBindingValidator.Factory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Interface UnresolvedBindingValidator.Factory

+
+
Enclosing class:
UnresolvedBindingValidator
+
+
+
+
public static interface UnresolvedBindingValidator.Factory
+ + +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ UnresolvedBindingValidatorcreate(com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+UnresolvedBindingValidator create(com.google.gwt.core.ext.TreeLogger logger)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.InvalidKeys.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.InvalidKeys.html new file mode 100644 index 0000000..10fce2d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.InvalidKeys.html @@ -0,0 +1,243 @@ + + + + + + +UnresolvedBindingValidator.InvalidKeys + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class UnresolvedBindingValidator.InvalidKeys

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator.InvalidKeys
+
+
+
Enclosing class:
UnresolvedBindingValidator
+
+
+
+
public static class UnresolvedBindingValidator.InvalidKeys
extends java.lang.Object
+ + +

+Container for information about invalid keys. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.Collection<Key<?>>getInvalidOptionalKeys() + +
+           
+ java.util.Set<java.util.Map.Entry<Key<?>,java.lang.String>>getInvalidRequiredKeys() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+getInvalidRequiredKeys

+
+public java.util.Set<java.util.Map.Entry<Key<?>,java.lang.String>> getInvalidRequiredKeys()
+
+
+
+
+
+
+ +

+getInvalidOptionalKeys

+
+public java.util.Collection<Key<?>> getInvalidOptionalKeys()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.html new file mode 100644 index 0000000..786d896 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/UnresolvedBindingValidator.html @@ -0,0 +1,363 @@ + + + + + + +UnresolvedBindingValidator + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.resolution +
+Class UnresolvedBindingValidator

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator
+
+
+
+
public class UnresolvedBindingValidator
extends java.lang.Object
+ + +

+Finds and reports errors in the dependency information. Removes all optional bindings that can't + be constructed. + +

A key is required if there exists a path from a key in the unresolved set of the origin + Ginjector to the key in question that passes only through required dependencies. A key is + optional if every path that leads to the key contains an optional dependency. + + This detects the following: +

+ +

Optional bindings with errors must be removed from the dependency graph before proceeding. + This is to prevent them from incorrectly constraining the positions for keys that depend on them. + +

See BindingResolver for how this fits into the overall algorithm for resolution. +

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static interfaceUnresolvedBindingValidator.Factory + +
+           
+static classUnresolvedBindingValidator.InvalidKeys + +
+          Container for information about invalid keys.
+  + + + + + + + + + + +
+Constructor Summary
UnresolvedBindingValidator(EagerCycleFinder cycleFinder, + ErrorManager errorManager, + com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ UnresolvedBindingValidator.InvalidKeysgetInvalidKeys(DependencyExplorer.DependencyExplorerOutput output) + +
+          Returns an UnresolvedBindingValidator.InvalidKeys object containing information about all the errors that we + discovered in required keys, and the set of all optional bindings that should be removed from + the graph in order to make it valid.
+ voidpruneInvalidOptional(DependencyExplorer.DependencyExplorerOutput output, + UnresolvedBindingValidator.InvalidKeys invalidKeys) + +
+          Prune all of the invalid optional keys from the graph.
+ booleanvalidate(DependencyExplorer.DependencyExplorerOutput output, + UnresolvedBindingValidator.InvalidKeys invalidKeys) + +
+          Returns true if the graph is valid (does not have any cycles or problems creating required + keys).
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+UnresolvedBindingValidator

+
+@Inject
+public UnresolvedBindingValidator(EagerCycleFinder cycleFinder,
+                                         ErrorManager errorManager,
+                                         com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getInvalidKeys

+
+public UnresolvedBindingValidator.InvalidKeys getInvalidKeys(DependencyExplorer.DependencyExplorerOutput output)
+
+
Returns an UnresolvedBindingValidator.InvalidKeys object containing information about all the errors that we + discovered in required keys, and the set of all optional bindings that should be removed from + the graph in order to make it valid. +

+

+
+
+
+
+ +

+validate

+
+public boolean validate(DependencyExplorer.DependencyExplorerOutput output,
+                        UnresolvedBindingValidator.InvalidKeys invalidKeys)
+
+
Returns true if the graph is valid (does not have any cycles or problems creating required + keys). If there are any errors, they will be reported to the global ErrorManager. +

+

+
+
+
+
+ +

+pruneInvalidOptional

+
+public void pruneInvalidOptional(DependencyExplorer.DependencyExplorerOutput output,
+                                 UnresolvedBindingValidator.InvalidKeys invalidKeys)
+
+
Prune all of the invalid optional keys from the graph. After this method, all of the keys + remaining in the graph are resolvable. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-frame.html new file mode 100644 index 0000000..10a2fdd --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-frame.html @@ -0,0 +1,82 @@ + + + + + + +com.google.gwt.inject.rebind.resolution + + + + + + + + + + + +com.google.gwt.inject.rebind.resolution + + + + +
+Interfaces  + +
+DependencyExplorer.Factory +
+ImplicitBindingCreator.Factory +
+UnresolvedBindingValidator.Factory
+ + + + + + +
+Classes  + +
+BindingResolver +
+DependencyExplorer +
+DependencyExplorer.DependencyExplorerOutput +
+DependencyGraph +
+DependencyGraph.Builder +
+DependencyGraph.GraphPruner +
+EagerCycleFinder +
+ImplicitBindingCreator +
+PathFinder +
+RequiredKeySet +
+ResolutionModule +
+UnresolvedBindingValidator +
+UnresolvedBindingValidator.InvalidKeys
+ + + + + + +
+Exceptions  + +
+ImplicitBindingCreator.BindingCreationException
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-summary.html new file mode 100644 index 0000000..e90458f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-summary.html @@ -0,0 +1,241 @@ + + + + + + +com.google.gwt.inject.rebind.resolution + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.resolution +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
DependencyExplorer.Factory 
ImplicitBindingCreator.Factory 
UnresolvedBindingValidator.Factory 
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
BindingResolverDrives the top level Binding Resolution algorithm.
DependencyExplorerExplores the unresolved dependencies for a given Ginjector and builds the DependencyGraph + representing all of the implicit bindings that need to be created to satisfy the dependencies.
DependencyExplorer.DependencyExplorerOutputClass that packages up all the output of exploring the unresolved dependencies for a Ginjector.
DependencyGraphA graph of the dependency information between types that need to be injected + at a given injector, called the origin.
DependencyGraph.Builder 
DependencyGraph.GraphPruner 
EagerCycleFinderSearches for "eager" cycles in the dependency graph.
ImplicitBindingCreatorClass responsible for creating implicit bindings.
PathFinderFinds the shortest path from the edges in the root set to any of one or more destination keys.
RequiredKeySetComputes the set of required keys in a given DependencyGraph.
ResolutionModuleBindings for components of the resolver.
UnresolvedBindingValidatorFinds and reports errors in the dependency information.
UnresolvedBindingValidator.InvalidKeysContainer for information about invalid keys.
+  + +

+ + + + + + + + + +
+Exception Summary
ImplicitBindingCreator.BindingCreationExceptionException thrown to indicate an error occurred during binding creation.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-tree.html new file mode 100644 index 0000000..843c5d6 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/resolution/package-tree.html @@ -0,0 +1,164 @@ + + + + + + +com.google.gwt.inject.rebind.resolution Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.resolution +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/AbstractInjectorMethod.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/AbstractInjectorMethod.html new file mode 100644 index 0000000..2e8d8a2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/AbstractInjectorMethod.html @@ -0,0 +1,328 @@ + + + + + + +AbstractInjectorMethod + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class AbstractInjectorMethod

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.AbstractInjectorMethod
+
+
+
All Implemented Interfaces:
InjectorMethod
+
+
+
+
public abstract class AbstractInjectorMethod
extends java.lang.Object
implements InjectorMethod
+ + +

+Common base class for injector methods. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Constructor Summary
+protected AbstractInjectorMethod(boolean isNative, + java.lang.String methodSignature, + java.lang.String packageName) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetMethodSignature() + +
+          Returns the signature of the method (e.g., "public void foo()")
+ java.lang.StringgetPackageName() + +
+          Get the name of the package in which this method should be created.
+ booleanisNative() + +
+          Returns whether this is a native method.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface com.google.gwt.inject.rebind.util.InjectorMethod
getMethodBody
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+AbstractInjectorMethod

+
+protected AbstractInjectorMethod(boolean isNative,
+                                 java.lang.String methodSignature,
+                                 java.lang.String packageName)
+
+
+ + + + + + + + +
+Method Detail
+ +

+isNative

+
+public boolean isNative()
+
+
Description copied from interface: InjectorMethod
+
Returns whether this is a native method. +

+

+
Specified by:
isNative in interface InjectorMethod
+
+
+
+
+
+
+ +

+getMethodSignature

+
+public java.lang.String getMethodSignature()
+
+
Description copied from interface: InjectorMethod
+
Returns the signature of the method (e.g., "public void foo()") +

+

+
Specified by:
getMethodSignature in interface InjectorMethod
+
+
+
+
+
+
+ +

+getPackageName

+
+public java.lang.String getPackageName()
+
+
Description copied from interface: InjectorMethod
+
Get the name of the package in which this method should be created. +

+

+
Specified by:
getPackageName in interface InjectorMethod
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/GuiceUtil.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/GuiceUtil.html new file mode 100644 index 0000000..e7f60ff --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/GuiceUtil.html @@ -0,0 +1,409 @@ + + + + + + +GuiceUtil + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class GuiceUtil

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.GuiceUtil
+
+
+
+
public class GuiceUtil
extends java.lang.Object
+ + +

+Util object that offers helper methods which can retrieve Keys + and additional dependency injection information on types or members. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
GuiceUtil(MemberCollector memberCollector) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.Collection<Dependency>getDependencies(Key<?> typeKey, + MethodLiteral<?,?> method) + +
+          Collects and returns all keys required to inject the given method.
+ Key<?>getKey(FieldLiteral<?> field) + +
+          Returns a key based on the passed field, taking any binding annotations + into account.
+ Key<?>getKey(MethodLiteral<?,?> method) + +
+          Retrieves a key based on the passed Ginjector method.
+ java.util.Collection<Dependency>getMemberInjectionDependencies(Key<?> typeKey, + TypeLiteral<?> type) + +
+          Collects and returns all keys required to member-inject the given class.
+static booleanhasInject(MemberLiteral<?,?> member) + +
+          Returns true if the passed member has a inject annotation.
+ booleanisMemberInject(MethodLiteral<?,?> method) + +
+          Returns true if the passed Ginjector method is used for member + injection (i.e.
+ booleanisOptional(MemberLiteral<?,?> member) + +
+          Returns true if the passed method has an @Inject + annotation and the injection is marked as optional ( + @Inject(optional = true)).
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+GuiceUtil

+
+@Inject
+public GuiceUtil(MemberCollector memberCollector)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getKey

+
+public Key<?> getKey(MethodLiteral<?,?> method)
+
+
Retrieves a key based on the passed Ginjector method. If the + passed method is used for member injection, returns a key for the + parameter, otherwise for the method return type. Always uses the method's + binding annotation if present. +

+

+
Parameters:
method - method for which to retrieve the key +
Returns:
key based on passed method
+
+
+
+ +

+getKey

+
+public Key<?> getKey(FieldLiteral<?> field)
+
+
Returns a key based on the passed field, taking any binding annotations + into account. +

+

+
Parameters:
field - field for which to retrieve the key +
Returns:
key for passed field
+
+
+
+ +

+isMemberInject

+
+public boolean isMemberInject(MethodLiteral<?,?> method)
+
+
Returns true if the passed Ginjector method is used for member + injection (i.e. takes exactly one parameter and returns void) or is a + regular Ginjector method that returns a type. +

+

+
Parameters:
method - method to be checked +
Returns:
true if the passed method is used for member injection
+
+
+
+ +

+isOptional

+
+public boolean isOptional(MemberLiteral<?,?> member)
+
+
Returns true if the passed method has an @Inject + annotation and the injection is marked as optional ( + @Inject(optional = true)). + + Note that Inject does not have an optional parameter + and therefore cannot be optional. +

+

+
Parameters:
member - method to be checked +
Returns:
true if method is injected optionally
+
+
+
+ +

+getMemberInjectionDependencies

+
+public java.util.Collection<Dependency> getMemberInjectionDependencies(Key<?> typeKey,
+                                                                       TypeLiteral<?> type)
+
+
Collects and returns all keys required to member-inject the given class. +

+

+
Parameters:
typeKey - key causing member injection
type - class for which required keys are calculated +
Returns:
keys required to inject given class
+
+
+
+ +

+getDependencies

+
+public java.util.Collection<Dependency> getDependencies(Key<?> typeKey,
+                                                        MethodLiteral<?,?> method)
+
+
Collects and returns all keys required to inject the given method. +

+

+
Parameters:
typeKey - the key that depends on injecting the arguments of method
method - method for which required keys are calculated +
Returns:
required keys
+
+
+
+ +

+hasInject

+
+public static boolean hasInject(MemberLiteral<?,?> member)
+
+
Returns true if the passed member has a inject annotation. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorMethod.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorMethod.html new file mode 100644 index 0000000..0551a4b --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorMethod.html @@ -0,0 +1,279 @@ + + + + + + +InjectorMethod + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface InjectorMethod

+
+
All Known Implementing Classes:
AbstractInjectorMethod
+
+
+
+
public interface InjectorMethod
+ + +

+A method that will be written to an injector implementation. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetMethodBody(InjectorWriteContext context) + +
+          Returns the body of the method in the given context (e.g., "return this;")
+ java.lang.StringgetMethodSignature() + +
+          Returns the signature of the method (e.g., "public void foo()")
+ java.lang.StringgetPackageName() + +
+          Get the name of the package in which this method should be created.
+ booleanisNative() + +
+          Returns whether this is a native method.
+  +

+ + + + + + + + +
+Method Detail
+ +

+isNative

+
+boolean isNative()
+
+
Returns whether this is a native method. +

+

+
+
+
+
+ +

+getMethodSignature

+
+java.lang.String getMethodSignature()
+
+
Returns the signature of the method (e.g., "public void foo()") +

+

+
+
+
+
+ +

+getMethodBody

+
+java.lang.String getMethodBody(InjectorWriteContext context)
+                               throws NoSourceNameException
+
+
Returns the body of the method in the given context (e.g., "return this;") +

+

+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+getPackageName

+
+java.lang.String getPackageName()
+
+
Get the name of the package in which this method should be created. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorWriteContext.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorWriteContext.html new file mode 100644 index 0000000..f920185 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/InjectorWriteContext.html @@ -0,0 +1,342 @@ + + + + + + +InjectorWriteContext + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface InjectorWriteContext

+
+
+
public interface InjectorWriteContext
+ + +

+Generates Java expressions and statements that perform injection-related + duties. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringcallChildGetter(GinjectorBindings childBindings, + Key<?> key) + +
+          Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given child.
+ java.lang.StringcallGetter(Key<?> key) + +
+          Generates a Java expression that evaluates to an injected instance of the + given key.
+ java.lang.StringcallGinjectorInterfaceGetter() + +
+          Generates a Java statement that evaluates to the implementation of the + current Ginjector interface.
+ java.lang.StringcallMemberInject(TypeLiteral<?> type, + java.lang.String input) + +
+          Generates a Java statement (including trailing semicolon) that performs + member injection on a value of the given type.
+ java.lang.StringcallMethod(java.lang.String methodName, + java.lang.String fragmentPackageName, + java.lang.Iterable<java.lang.String> parameters) + +
+          Generates a Java expression that evaluates to an invocation of the named + method on the given package fragment.
+ java.lang.StringcallParentGetter(Key<?> key, + GinjectorBindings parentBindings) + +
+          Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given parent injector.
+  +

+ + + + + + + + +
+Method Detail
+ +

+callGetter

+
+java.lang.String callGetter(Key<?> key)
+
+
Generates a Java expression that evaluates to an injected instance of the + given key. +

+

+
+
+
+
+ +

+callChildGetter

+
+java.lang.String callChildGetter(GinjectorBindings childBindings,
+                                 Key<?> key)
+
+
Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given child. +

+

+
+
+
+
+ +

+callParentGetter

+
+java.lang.String callParentGetter(Key<?> key,
+                                  GinjectorBindings parentBindings)
+
+
Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given parent injector. +

+

+
+
+
+
+ +

+callMemberInject

+
+java.lang.String callMemberInject(TypeLiteral<?> type,
+                                  java.lang.String input)
+
+
Generates a Java statement (including trailing semicolon) that performs + member injection on a value of the given type. +

+

+
Parameters:
type - the type of value to perform member injection on
input - a Java expression that evaluates to the object that should + be member-injected
+
+
+
+ +

+callMethod

+
+java.lang.String callMethod(java.lang.String methodName,
+                            java.lang.String fragmentPackageName,
+                            java.lang.Iterable<java.lang.String> parameters)
+
+
Generates a Java expression that evaluates to an invocation of the named + method on the given package fragment. + +

Used when generating an intermediate invoker method; see + MethodCallUtil.createMethodCallWithInjection(com.google.gwt.inject.rebind.reflect.MethodLiteral, java.lang.String, com.google.gwt.inject.rebind.util.NameGenerator, java.util.List). +

+

+
+
+
+
+ +

+callGinjectorInterfaceGetter

+
+java.lang.String callGinjectorInterfaceGetter()
+
+
Generates a Java statement that evaluates to the implementation of the + current Ginjector interface. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.FieldFilter.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.FieldFilter.html new file mode 100644 index 0000000..872b6d5 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.FieldFilter.html @@ -0,0 +1,212 @@ + + + + + + +MemberCollector.FieldFilter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface MemberCollector.FieldFilter

+
+
Enclosing class:
MemberCollector
+
+
+
+
public static interface MemberCollector.FieldFilter
+ + +

+Filter used during the collection of fields to restrict the kind of + collected fields. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ booleanaccept(FieldLiteral<?> field) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+accept

+
+boolean accept(FieldLiteral<?> field)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.MethodFilter.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.MethodFilter.html new file mode 100644 index 0000000..882a277 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.MethodFilter.html @@ -0,0 +1,217 @@ + + + + + + +MemberCollector.MethodFilter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface MemberCollector.MethodFilter

+
+
Enclosing class:
MemberCollector
+
+
+
+
public static interface MemberCollector.MethodFilter
+ + +

+Filter used during the collection of methods to restrict the kind of + collected methods. +

+ Note: The method filter influences override detection! If a method A + overrides a method A*, without a filter only A would be collected. If the + filter only accepts A* and not A, A will not be collected, and A* will be + collected despite being overridden by A. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ booleanaccept(MethodLiteral<?,java.lang.reflect.Method> method) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+accept

+
+boolean accept(MethodLiteral<?,java.lang.reflect.Method> method)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.html new file mode 100644 index 0000000..6684f0d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/MemberCollector.html @@ -0,0 +1,407 @@ + + + + + + +MemberCollector + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class MemberCollector

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.MemberCollector
+
+
+
+
public class MemberCollector
extends java.lang.Object
+ + +

+This class can be used to collect a type's members, including those of its + (recursive) superclasses and interfaces. The collector treats overrides + correctly, i.e. it returns the method defined the closest to the provided + type. +

Note: The collector uses internal caching and can be called with the same + arguments repeatedly without repeated performance costs. +

This class is not thread-safe. +

+ +

+


+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static interfaceMemberCollector.FieldFilter + +
+          Filter used during the collection of fields to restrict the kind of + collected fields.
+static interfaceMemberCollector.MethodFilter + +
+          Filter used during the collection of methods to restrict the kind of + collected methods.
+ + + + + + + + + + +
+Field Summary
+static MemberCollector.MethodFilterALL_METHOD_FILTER + +
+           
+  + + + + + + + + + + +
+Constructor Summary
MemberCollector(com.google.gwt.core.ext.TreeLogger logger) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.util.Collection<FieldLiteral<?>>getFields(TypeLiteral<?> typeLiteral) + +
+          Returns all fields in the provided type, including those of the type's + (recursive) super classes.
+ java.util.Collection<MethodLiteral<?,java.lang.reflect.Method>>getMethods(TypeLiteral<?> typeLiteral) + +
+          Returns all methods in the provided type, including those of the type's + (recursive) super classes and interfaces.
+ voidsetFieldFilter(MemberCollector.FieldFilter filter) + +
+          Sets this collector's field filter.
+ voidsetMethodFilter(MemberCollector.MethodFilter filter) + +
+          Sets this collector's method filter.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+ALL_METHOD_FILTER

+
+public static final MemberCollector.MethodFilter ALL_METHOD_FILTER
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+MemberCollector

+
+@Inject
+public MemberCollector(com.google.gwt.core.ext.TreeLogger logger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+setMethodFilter

+
+public void setMethodFilter(MemberCollector.MethodFilter filter)
+                     throws java.lang.IllegalStateException
+
+
Sets this collector's method filter. This method can only be called + before members are requested. +

+

+
Parameters:
filter - new method filter for this collector +
Throws: +
java.lang.IllegalStateException - if the filter is set after members have been + requested
+
+
+
+ +

+setFieldFilter

+
+public void setFieldFilter(MemberCollector.FieldFilter filter)
+                    throws java.lang.IllegalStateException
+
+
Sets this collector's field filter. This method can only be called before + members are requested. +

+

+
Parameters:
filter - new field filter for this collector +
Throws: +
java.lang.IllegalStateException - if the filter is set after members have been + requested
+
+
+
+ +

+getMethods

+
+public java.util.Collection<MethodLiteral<?,java.lang.reflect.Method>> getMethods(TypeLiteral<?> typeLiteral)
+
+
Returns all methods in the provided type, including those of the type's + (recursive) super classes and interfaces. Treats overloads correctly. If + no method filter is set will return an empty set. +

+

+
Parameters:
typeLiteral - type for which methods are collected +
Returns:
all methods for the given type
+
+
+
+ +

+getFields

+
+public java.util.Collection<FieldLiteral<?>> getFields(TypeLiteral<?> typeLiteral)
+
+
Returns all fields in the provided type, including those of the type's + (recursive) super classes. If no field filter is set will return an empty + set. +

+

+
Parameters:
typeLiteral - type for which fields are collected +
Returns:
all fields for the given type
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/MethodCallUtil.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/MethodCallUtil.html new file mode 100644 index 0000000..a87f8bf --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/MethodCallUtil.html @@ -0,0 +1,354 @@ + + + + + + +MethodCallUtil + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class MethodCallUtil

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.MethodCallUtil
+
+
+
+
public class MethodCallUtil
extends java.lang.Object
+ + +

+Utility code to create method and constructor calls. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
MethodCallUtil() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ SourceSnippetcreateConstructorInjection(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Creates a constructor injecting method and returns a string that invokes + the new method.
+ SourceSnippetcreateMethodCallWithInjection(MethodLiteral<?,?> method, + java.lang.String invokeeName, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Creates a method that calls the passed method, injecting its parameters + using getters, and returns a string that invokes the new method.
+ SourceSnippetcreateMethodCallWithInjection(MethodLiteral<?,?> method, + java.lang.String invokeeName, + java.lang.String[] parameterNames, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Creates a method that calls the passed method, injecting its parameters + using getters as necessary, and returns a string that invokes the new + method.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+MethodCallUtil

+
+public MethodCallUtil()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createConstructorInjection

+
+public SourceSnippet createConstructorInjection(MethodLiteral<?,java.lang.reflect.Constructor<?>> constructor,
+                                                NameGenerator nameGenerator,
+                                                java.util.List<InjectorMethod> methodsOutput)
+                                         throws NoSourceNameException
+
+
Creates a constructor injecting method and returns a string that invokes + the new method. The new method returns the constructed object. +

+

+
Parameters:
constructor - constructor to call
nameGenerator - NameGenerator to be used for ensuring method name uniqueness
methodsOutput - a list where all new methods created by this + call are added +
Returns:
source snippet calling the generated method +
Throws: +
NoSourceNameException
+
+
+
+ +

+createMethodCallWithInjection

+
+public SourceSnippet createMethodCallWithInjection(MethodLiteral<?,?> method,
+                                                   java.lang.String invokeeName,
+                                                   NameGenerator nameGenerator,
+                                                   java.util.List<InjectorMethod> methodsOutput)
+                                            throws NoSourceNameException
+
+
Creates a method that calls the passed method, injecting its parameters + using getters, and returns a string that invokes the new method. The new + method returns the passed method's return value, if any. If a method + without parameters is provided, that method will be called and no + parameters will be passed. +

+

+
Parameters:
method - method to call (can be constructor)
invokeeName - expression that evaluates to the object on which + the method is to be called. If null the method will be called + in the current scope.
nameGenerator - NameGenerator to be used for ensuring method name uniqueness
methodsOutput - a list where all new methods created by this + call are added +
Returns:
source snippet calling the generated method +
Throws: +
NoSourceNameException
+
+
+
+ +

+createMethodCallWithInjection

+
+public SourceSnippet createMethodCallWithInjection(MethodLiteral<?,?> method,
+                                                   java.lang.String invokeeName,
+                                                   java.lang.String[] parameterNames,
+                                                   NameGenerator nameGenerator,
+                                                   java.util.List<InjectorMethod> methodsOutput)
+                                            throws NoSourceNameException
+
+
Creates a method that calls the passed method, injecting its parameters + using getters as necessary, and returns a string that invokes the new + method. The new method returns the passed method's return value, if any. + If a method without parameters is provided, that method will be called and + no parameters will be passed. If the passed method declared any checked + exceptions, the generated method will catch and rethrow those as + CreationException. +

+

+
Parameters:
method - method to call (can be constructor)
invokeeName - expression that evaluates to the object on which + the method is to be called. If null the method will be called + in the current scope.
parameterNames - array with parameter names that can replace getter + methods (usually used to fetch injected values) in the returned + string. The array length must match the number of method + parameters. A null value denotes that the getter method + should be used.
nameGenerator - NameGenerator to use for ensuring method name uniqueness
methodsOutput - a list where all new methods created by this + call are added +
Returns:
string calling the generated method +
Throws: +
NoSourceNameException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/NameGenerator.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/NameGenerator.html new file mode 100644 index 0000000..ff4ac11 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/NameGenerator.html @@ -0,0 +1,576 @@ + + + + + + +NameGenerator + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class NameGenerator

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.NameGenerator
+
+
+
+
public class NameGenerator
extends java.lang.Object
+ + +

+Helper to generate various names for members of a Ginjector + implementation. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
NameGenerator() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringconvertToValidMemberName(java.lang.String name) + +
+           
+ java.lang.StringcreateMethodName(java.lang.String base) + +
+          Returns a new valid (i.e.
+ java.lang.StringgetAssistedInjectMethodName(Key<?> factoryKey, + java.lang.String methodName) + +
+          Returns the name of an assisted injection helper method.
+ java.lang.StringgetChildInjectorGetterMethodName(java.lang.String childInjectorClassName) + +
+          Returns the name of a getter for a child injector.
+ java.lang.StringgetFragmentCanonicalClassName(java.lang.String injectorClassName, + FragmentPackageName fragmentPackageName) + +
+          Computes the canonical name (including package) of a single fragment of a + Ginjector.
+ java.lang.StringgetFragmentClassName(java.lang.String injectorClassName, + FragmentPackageName fragmentPackageName) + +
+          Computes the name of a single fragment of a Ginjector.
+ java.lang.StringgetFragmentFieldName(FragmentPackageName fragmentPackageName) + +
+          Computes the field name of a single fragment of an injector.
+ java.lang.StringgetFragmentGetterMethodName(FragmentPackageName fragmentPackageName) + +
+          Returnst he name of a getter for an injector fragment.
+ java.lang.StringgetGetterMethodName(Key<?> key) + +
+          Returns the key's getter method name.
+ java.lang.StringgetGinjectorInterfaceFieldName() + +
+          Computes the name of the field in which the Ginjector interface + implementation is stored.
+ java.lang.StringgetGinjectorInterfaceGetterMethodName() + +
+          Computes the name of the method used to retrieve the Ginjector interface + implementation.
+ java.lang.StringgetMemberInjectMethodName(TypeLiteral<?> type) + +
+          Returns the type's member inject method name.
+ java.lang.StringgetSingletonFieldName(Key<?> key) + +
+          Returns the key's singleton field name.
+ voidmarkAsUsed(java.lang.String name) + +
+          Reserves the given name to prevent new methods to be created with it.
+static java.lang.StringreplaceLast(java.lang.String source, + char toReplace, + char with) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+NameGenerator

+
+public NameGenerator()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAssistedInjectMethodName

+
+public java.lang.String getAssistedInjectMethodName(Key<?> factoryKey,
+                                                    java.lang.String methodName)
+
+
Returns the name of an assisted injection helper method. +

+

+
+
+
+
+ +

+getChildInjectorGetterMethodName

+
+public java.lang.String getChildInjectorGetterMethodName(java.lang.String childInjectorClassName)
+
+
Returns the name of a getter for a child injector. +

+

+
+
+
+
+ +

+getFragmentGetterMethodName

+
+public java.lang.String getFragmentGetterMethodName(FragmentPackageName fragmentPackageName)
+
+
Returnst he name of a getter for an injector fragment. +

+

+
+
+
+
+ +

+getGetterMethodName

+
+public java.lang.String getGetterMethodName(Key<?> key)
+
+
Returns the key's getter method name. The method with that name can be + called to retrieve an instance of the type described by the key. +

+

+ +
Returns:
getter method name
+
+
+
+ +

+getFragmentClassName

+
+public java.lang.String getFragmentClassName(java.lang.String injectorClassName,
+                                             FragmentPackageName fragmentPackageName)
+
+
Computes the name of a single fragment of a Ginjector. +

+

+
Parameters:
injectorClassName - the simple name of the injector's class (not + including its package)
+
+
+
+ +

+getFragmentCanonicalClassName

+
+public java.lang.String getFragmentCanonicalClassName(java.lang.String injectorClassName,
+                                                      FragmentPackageName fragmentPackageName)
+
+
Computes the canonical name (including package) of a single fragment of a + Ginjector. +

+

+
+
+
+
+ +

+getFragmentFieldName

+
+public java.lang.String getFragmentFieldName(FragmentPackageName fragmentPackageName)
+
+
Computes the field name of a single fragment of an injector. +

+

+
+
+
+
+ +

+getGinjectorInterfaceFieldName

+
+public java.lang.String getGinjectorInterfaceFieldName()
+
+
Computes the name of the field in which the Ginjector interface + implementation is stored. +

+

+
+
+
+
+ +

+getGinjectorInterfaceGetterMethodName

+
+public java.lang.String getGinjectorInterfaceGetterMethodName()
+
+
Computes the name of the method used to retrieve the Ginjector interface + implementation. +

+

+
+
+
+
+ +

+getMemberInjectMethodName

+
+public java.lang.String getMemberInjectMethodName(TypeLiteral<?> type)
+
+
Returns the type's member inject method name. The method with that name + can be called with a single parameter to inject members of that parameter. +

+

+ +
Returns:
member inject method name
+
+
+
+ +

+getSingletonFieldName

+
+public java.lang.String getSingletonFieldName(Key<?> key)
+
+
Returns the key's singleton field name. +

+

+ +
Returns:
singleton field name
+
+
+
+ +

+createMethodName

+
+public java.lang.String createMethodName(java.lang.String base)
+
+
Returns a new valid (i.e. unique) method name based on base. + + Note: Method names are considered "used" after being returned by this + method, whether they're actually used to write a new method or not. +

+

+
Parameters:
base - base on which method name gets created +
Returns:
valid method name
+
+
+
+ +

+markAsUsed

+
+public void markAsUsed(java.lang.String name)
+                throws java.lang.IllegalArgumentException
+
+
Reserves the given name to prevent new methods to be created with it. +

+

+
Parameters:
name - name to be reserved +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+convertToValidMemberName

+
+public java.lang.String convertToValidMemberName(java.lang.String name)
+
+
+
+
+
+
+ +

+replaceLast

+
+public static java.lang.String replaceLast(java.lang.String source,
+                                           char toReplace,
+                                           char with)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/Preconditions.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/Preconditions.html new file mode 100644 index 0000000..9d589d2 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/Preconditions.html @@ -0,0 +1,690 @@ + + + + + + +Preconditions + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class Preconditions

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.Preconditions
+
+
+
+
public final class Preconditions
extends java.lang.Object
+ + +

+Simple static methods to be called at the start of your own methods to verify + correct arguments and state. This allows constructs such as +

+     if (count <= 0) {
+       throw new IllegalArgumentException("must be positive: " + count);
+     }
+ + to be replaced with the more compact +
+     checkArgument(count > 0, "must be positive: %s", count);
+ + Note that the sense of the expression is inverted; with Preconditions + you declare what you expect to be true, just as you do with an + + assert or a JUnit assertTrue call. + +

Warning: only the "%s" specifier is recognized as a + placeholder in these messages, not the full range of String.format(String, Object[]) specifiers. + +

Take care not to confuse precondition checking with other similar types + of checks! Precondition exceptions -- including those provided here, but also + IndexOutOfBoundsException, UnsupportedOperationException and others -- are used to signal that the + calling method has made an error. This tells the caller that it should + not have invoked the method when it did, with the arguments it did, or + perhaps ever. Postcondition or other invariant failures should not throw + these types of exceptions. + +

This class was adapted from google-collections project. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static voidcheckArgument(boolean expression) + +
+          Ensures the truth of an expression involving one or more parameters to the + calling method.
+static voidcheckArgument(boolean expression, + java.lang.Object errorMessage) + +
+          Ensures the truth of an expression involving one or more parameters to the + calling method.
+static voidcheckArgument(boolean expression, + java.lang.String errorMessageTemplate, + java.lang.Object... errorMessageArgs) + +
+          Ensures the truth of an expression involving one or more parameters to the + calling method.
+static intcheckElementIndex(int index, + int size) + +
+          Ensures that index specifies a valid element in an array, + list or string of size size.
+static intcheckElementIndex(int index, + int size, + java.lang.String desc) + +
+          Ensures that index specifies a valid element in an array, + list or string of size size.
+static + + + + +
+<T> T
+
checkNotNull(T reference) + +
+          Ensures that an object reference passed as a parameter to the calling + method is not null.
+static + + + + +
+<T> T
+
checkNotNull(T reference, + java.lang.Object errorMessage) + +
+          Ensures that an object reference passed as a parameter to the calling + method is not null.
+static + + + + +
+<T> T
+
checkNotNull(T reference, + java.lang.String errorMessageTemplate, + java.lang.Object... errorMessageArgs) + +
+          Ensures that an object reference passed as a parameter to the calling + method is not null.
+static intcheckPositionIndex(int index, + int size) + +
+          Ensures that index specifies a valid position in an array, + list or string of size size.
+static intcheckPositionIndex(int index, + int size, + java.lang.String desc) + +
+          Ensures that index specifies a valid position in an array, + list or string of size size.
+static voidcheckPositionIndexes(int start, + int end, + int size) + +
+          Ensures that start and end specify a valid positions + in an array, list or string of size size, and are in order.
+static voidcheckState(boolean expression) + +
+          Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method.
+static voidcheckState(boolean expression, + java.lang.Object errorMessage) + +
+          Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method.
+static voidcheckState(boolean expression, + java.lang.String errorMessageTemplate, + java.lang.Object... errorMessageArgs) + +
+          Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+checkArgument

+
+public static void checkArgument(boolean expression)
+
+
Ensures the truth of an expression involving one or more parameters to the + calling method. +

+

+
Parameters:
expression - a boolean expression +
Throws: +
java.lang.IllegalArgumentException - if expression is false
+
+
+
+ +

+checkArgument

+
+public static void checkArgument(boolean expression,
+                                 java.lang.Object errorMessage)
+
+
Ensures the truth of an expression involving one or more parameters to the + calling method. +

+

+
Parameters:
expression - a boolean expression
errorMessage - the exception message to use if the check fails; will + be converted to a string using String.valueOf(Object) +
Throws: +
java.lang.IllegalArgumentException - if expression is false
+
+
+
+ +

+checkArgument

+
+public static void checkArgument(boolean expression,
+                                 java.lang.String errorMessageTemplate,
+                                 java.lang.Object... errorMessageArgs)
+
+
Ensures the truth of an expression involving one or more parameters to the + calling method. +

+

+
Parameters:
expression - a boolean expression
errorMessageTemplate - a template for the exception message should the + check fail. The message is formed by replacing each %s + placeholder in the template with an argument. These are matched by + position - the first %s gets errorMessageArgs[0], etc. + Unmatched arguments will be appended to the formatted message in square + braces. Unmatched placeholders will be left as-is.
errorMessageArgs - the arguments to be substituted into the message + template. Arguments are converted to strings using + String.valueOf(Object). +
Throws: +
java.lang.IllegalArgumentException - if expression is false +
java.lang.NullPointerException - if the check fails and either errorMessageTemplate or errorMessageArgs is null (don't let + this happen)
+
+
+
+ +

+checkElementIndex

+
+public static int checkElementIndex(int index,
+                                    int size)
+
+
Ensures that index specifies a valid element in an array, + list or string of size size. An element index may range from zero, + inclusive, to size, exclusive. +

+

+
Parameters:
index - a user-supplied index identifying an element of an array, list + or string
size - the size of that array, list or string +
Returns:
the value of index +
Throws: +
java.lang.IndexOutOfBoundsException - if index is negative or is not + less than size +
java.lang.IllegalArgumentException - if size is negative
+
+
+
+ +

+checkElementIndex

+
+public static int checkElementIndex(int index,
+                                    int size,
+                                    java.lang.String desc)
+
+
Ensures that index specifies a valid element in an array, + list or string of size size. An element index may range from zero, + inclusive, to size, exclusive. +

+

+
Parameters:
index - a user-supplied index identifying an element of an array, list + or string
size - the size of that array, list or string
desc - the text to use to describe this index in an error message +
Returns:
the value of index +
Throws: +
java.lang.IndexOutOfBoundsException - if index is negative or is not + less than size +
java.lang.IllegalArgumentException - if size is negative
+
+
+
+ +

+checkNotNull

+
+public static <T> T checkNotNull(T reference)
+
+
Ensures that an object reference passed as a parameter to the calling + method is not null. +

+

+
Parameters:
reference - an object reference +
Returns:
the non-null reference that was validated +
Throws: +
java.lang.NullPointerException - if reference is null
+
+
+
+ +

+checkNotNull

+
+public static <T> T checkNotNull(T reference,
+                                 java.lang.Object errorMessage)
+
+
Ensures that an object reference passed as a parameter to the calling + method is not null. +

+

+
Parameters:
reference - an object reference
errorMessage - the exception message to use if the check fails; will + be converted to a string using String.valueOf(Object) +
Returns:
the non-null reference that was validated +
Throws: +
java.lang.NullPointerException - if reference is null
+
+
+
+ +

+checkNotNull

+
+public static <T> T checkNotNull(T reference,
+                                 java.lang.String errorMessageTemplate,
+                                 java.lang.Object... errorMessageArgs)
+
+
Ensures that an object reference passed as a parameter to the calling + method is not null. +

+

+
Parameters:
reference - an object reference
errorMessageTemplate - a template for the exception message should the + check fail. The message is formed by replacing each %s + placeholder in the template with an argument. These are matched by + position - the first %s gets errorMessageArgs[0], etc. + Unmatched arguments will be appended to the formatted message in square + braces. Unmatched placeholders will be left as-is.
errorMessageArgs - the arguments to be substituted into the message + template. Arguments are converted to strings using + String.valueOf(Object). +
Returns:
the non-null reference that was validated +
Throws: +
java.lang.NullPointerException - if reference is null
+
+
+
+ +

+checkPositionIndex

+
+public static int checkPositionIndex(int index,
+                                     int size)
+
+
Ensures that index specifies a valid position in an array, + list or string of size size. A position index may range from zero + to size, inclusive. +

+

+
Parameters:
index - a user-supplied index identifying a position in an array, list + or string
size - the size of that array, list or string +
Returns:
the value of index +
Throws: +
java.lang.IndexOutOfBoundsException - if index is negative or is + greater than size +
java.lang.IllegalArgumentException - if size is negative
+
+
+
+ +

+checkPositionIndex

+
+public static int checkPositionIndex(int index,
+                                     int size,
+                                     java.lang.String desc)
+
+
Ensures that index specifies a valid position in an array, + list or string of size size. A position index may range from zero + to size, inclusive. +

+

+
Parameters:
index - a user-supplied index identifying a position in an array, list + or string
size - the size of that array, list or string
desc - the text to use to describe this index in an error message +
Returns:
the value of index +
Throws: +
java.lang.IndexOutOfBoundsException - if index is negative or is + greater than size +
java.lang.IllegalArgumentException - if size is negative
+
+
+
+ +

+checkPositionIndexes

+
+public static void checkPositionIndexes(int start,
+                                        int end,
+                                        int size)
+
+
Ensures that start and end specify a valid positions + in an array, list or string of size size, and are in order. A + position index may range from zero to size, inclusive. +

+

+
Parameters:
start - a user-supplied index identifying a starting position in an + array, list or string
end - a user-supplied index identifying a ending position in an array, + list or string
size - the size of that array, list or string +
Throws: +
java.lang.IndexOutOfBoundsException - if either index is negative or is + greater than size, or if end is less than start +
java.lang.IllegalArgumentException - if size is negative
+
+
+
+ +

+checkState

+
+public static void checkState(boolean expression)
+
+
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +

+

+
Parameters:
expression - a boolean expression +
Throws: +
java.lang.IllegalStateException - if expression is false
+
+
+
+ +

+checkState

+
+public static void checkState(boolean expression,
+                              java.lang.Object errorMessage)
+
+
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +

+

+
Parameters:
expression - a boolean expression
errorMessage - the exception message to use if the check fails; will + be converted to a string using String.valueOf(Object) +
Throws: +
java.lang.IllegalStateException - if expression is false
+
+
+
+ +

+checkState

+
+public static void checkState(boolean expression,
+                              java.lang.String errorMessageTemplate,
+                              java.lang.Object... errorMessageArgs)
+
+
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +

+

+
Parameters:
expression - a boolean expression
errorMessageTemplate - a template for the exception message should the + check fail. The message is formed by replacing each %s + placeholder in the template with an argument. These are matched by + position - the first %s gets errorMessageArgs[0], etc. + Unmatched arguments will be appended to the formatted message in square + braces. Unmatched placeholders will be left as-is.
errorMessageArgs - the arguments to be substituted into the message + template. Arguments are converted to strings using + String.valueOf(Object). +
Throws: +
java.lang.IllegalStateException - if expression is false +
java.lang.NullPointerException - if the check fails and either errorMessageTemplate or errorMessageArgs is null (don't let + this happen)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/PrettyPrinter.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/PrettyPrinter.html new file mode 100644 index 0000000..df1d04d --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/PrettyPrinter.html @@ -0,0 +1,272 @@ + + + + + + +PrettyPrinter + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class PrettyPrinter

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.PrettyPrinter
+
+
+
+
public final class PrettyPrinter
extends java.lang.Object
+ + +

+Pretty-printer that formats internal types for human consumption in error + messages. + +

format(String, Object...) acts like String.format(java.lang.String, java.lang.Object...), except + that it detects and pretty-prints the following argument types: + +

+ + All other arguments are passed unchanged to String.format(java.lang.String, java.lang.Object...). +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.Stringformat(java.lang.String formatString, + java.lang.Object... args) + +
+          Generate a string based on a format template as String.format(java.lang.String, java.lang.Object...) + would, using the pretty-printing rules specified in the class + documentation.
+static voidlog(com.google.gwt.core.ext.TreeLogger logger, + com.google.gwt.core.ext.TreeLogger.Type type, + java.lang.String formatString, + java.lang.Object... args) + +
+          Log a pretty-printed message if the given log level is active.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+log

+
+public static void log(com.google.gwt.core.ext.TreeLogger logger,
+                       com.google.gwt.core.ext.TreeLogger.Type type,
+                       java.lang.String formatString,
+                       java.lang.Object... args)
+
+
Log a pretty-printed message if the given log level is active. The message + is only formatted if it will be logged. +

+

+
+
+
+
+ +

+format

+
+public static java.lang.String format(java.lang.String formatString,
+                                      java.lang.Object... args)
+
+
Generate a string based on a format template as String.format(java.lang.String, java.lang.Object...) + would, using the pretty-printing rules specified in the class + documentation. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippet.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippet.html new file mode 100644 index 0000000..fc811da --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippet.html @@ -0,0 +1,210 @@ + + + + + + +SourceSnippet + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface SourceSnippet

+
+
+
public interface SourceSnippet
+ + +

+A fragment of code that can be written to an injector implementation. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetSource(InjectorWriteContext writeContext) + +
+          Format this code for the given write context.
+  +

+ + + + + + + + +
+Method Detail
+ +

+getSource

+
+java.lang.String getSource(InjectorWriteContext writeContext)
+
+
Format this code for the given write context. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippetBuilder.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippetBuilder.html new file mode 100644 index 0000000..d3b805f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippetBuilder.html @@ -0,0 +1,294 @@ + + + + + + +SourceSnippetBuilder + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class SourceSnippetBuilder

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.SourceSnippetBuilder
+
+
+
+
public class SourceSnippetBuilder
extends java.lang.Object
+ + +

+Builder that composes source snippets from other source snippets. +

+ +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
SourceSnippetBuilder() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ SourceSnippetBuilderappend(SourceSnippet snippet) + +
+           
+ SourceSnippetBuilderappend(java.lang.String snippet) + +
+          Convenience routine to append a constant string to this snippet.
+ SourceSnippetbuild() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+SourceSnippetBuilder

+
+public SourceSnippetBuilder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+append

+
+public SourceSnippetBuilder append(java.lang.String snippet)
+
+
Convenience routine to append a constant string to this snippet. +

+

+
+
+
+
+ +

+append

+
+public SourceSnippetBuilder append(SourceSnippet snippet)
+
+
+
+
+
+
+ +

+build

+
+public SourceSnippet build()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippets.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippets.html new file mode 100644 index 0000000..08c0077 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceSnippets.html @@ -0,0 +1,404 @@ + + + + + + +SourceSnippets + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class SourceSnippets

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.SourceSnippets
+
+
+
+
public final class SourceSnippets
extends java.lang.Object
+ + +

+Utility class for source snippets. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static InjectorMethodasMethod(boolean isNative, + java.lang.String signature, + java.lang.String pkg, + SourceSnippet body) + +
+          Creates an InjectorMethod using the given SourceSnippet as + its body.
+static SourceSnippetcallChildGetter(GinjectorBindings childBindings, + Key<?> key) + +
+          Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given child.
+static SourceSnippetcallGetter(Key<?> key) + +
+          Creates a snippet that evaluates to an injected instance of the given key + in the current GinjectorBindings.
+static SourceSnippetcallGinjectorInterfaceGetter() + +
+          Creates a snippet that evaluates to the implementation of the current + Ginjector interface.
+static SourceSnippetcallMemberInject(TypeLiteral<?> type, + java.lang.String input) + +
+          Creates a snippet (including a trailing semicolon) that performs member + injection on a value of the given type.
+static SourceSnippetcallMethod(java.lang.String methodName, + java.lang.String fragmentPackageName, + java.lang.Iterable<java.lang.String> parameters) + +
+          Creates a snippet that evaluates to an invocation of the named method on + the given package fragment.
+static SourceSnippetcallParentGetter(Key<?> key, + GinjectorBindings parentBindings) + +
+          Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given parent injector.
+static SourceSnippetforText(java.lang.String text) + +
+          Creates a snippet that generates a constant text string.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Method Detail
+ +

+callChildGetter

+
+public static SourceSnippet callChildGetter(GinjectorBindings childBindings,
+                                            Key<?> key)
+
+
Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given child. +

+

+
+
+
+
+ +

+callGetter

+
+public static SourceSnippet callGetter(Key<?> key)
+
+
Creates a snippet that evaluates to an injected instance of the given key + in the current GinjectorBindings. +

+

+
+
+
+
+ +

+callMemberInject

+
+public static SourceSnippet callMemberInject(TypeLiteral<?> type,
+                                             java.lang.String input)
+
+
Creates a snippet (including a trailing semicolon) that performs member + injection on a value of the given type. +

+

+
Parameters:
type - the type of value to perform member injection on
input - a Java expression that evaluates to the object that should be + member-injected
+
+
+
+ +

+callMethod

+
+public static SourceSnippet callMethod(java.lang.String methodName,
+                                       java.lang.String fragmentPackageName,
+                                       java.lang.Iterable<java.lang.String> parameters)
+
+
Creates a snippet that evaluates to an invocation of the named method on + the given package fragment. + +

Used when generating an intermediate invoker method; see + MethodCallUtil.createMethodCallWithInjection(com.google.gwt.inject.rebind.reflect.MethodLiteral, java.lang.String, com.google.gwt.inject.rebind.util.NameGenerator, java.util.List). +

+

+
+
+
+
+ +

+callParentGetter

+
+public static SourceSnippet callParentGetter(Key<?> key,
+                                             GinjectorBindings parentBindings)
+
+
Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given parent injector. +

+

+
+
+
+
+ +

+callGinjectorInterfaceGetter

+
+public static SourceSnippet callGinjectorInterfaceGetter()
+
+
Creates a snippet that evaluates to the implementation of the current + Ginjector interface. +

+

+
+
+
+
+ +

+forText

+
+public static SourceSnippet forText(java.lang.String text)
+
+
Creates a snippet that generates a constant text string. +

+

+
+
+
+
+ +

+asMethod

+
+public static InjectorMethod asMethod(boolean isNative,
+                                      java.lang.String signature,
+                                      java.lang.String pkg,
+                                      SourceSnippet body)
+
+
Creates an InjectorMethod using the given SourceSnippet as + its body. +

+

+
Parameters:
isNative - whether the returned method is a native method
signature - the signature of the returned method
pkg - the package in which the returned method should be created
body - the body text of the new method
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.Factory.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.Factory.html new file mode 100644 index 0000000..9392d3c --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.Factory.html @@ -0,0 +1,211 @@ + + + + + + +SourceWriteUtil.Factory + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Interface SourceWriteUtil.Factory

+
+
Enclosing class:
SourceWriteUtil
+
+
+
+
public static interface SourceWriteUtil.Factory
+ + +

+Factory for SourceWriteUtil. +

+ +

+


+ +

+ + + + + + + + + + + + +
+Method Summary
+ SourceWriteUtilcreate(BindingIndex bindingIndex) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+create

+
+SourceWriteUtil create(BindingIndex bindingIndex)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.html new file mode 100644 index 0000000..8af2402 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/SourceWriteUtil.html @@ -0,0 +1,620 @@ + + + + + + +SourceWriteUtil + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +com.google.gwt.inject.rebind.util +
+Class SourceWriteUtil

+
+java.lang.Object
+  extended by com.google.gwt.inject.rebind.util.SourceWriteUtil
+
+
+
+
public class SourceWriteUtil
extends java.lang.Object
+ + +

+Helper object for source writing. +

+ +

+


+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static interfaceSourceWriteUtil.Factory + +
+          Factory for SourceWriteUtil.
+  + + + + + + + + + + + +
+Constructor Summary
+protected SourceWriteUtil(GuiceUtil guiceUtil, + MemberCollector memberCollector, + MethodCallUtil methodCallUtil, + BindingIndex bindingIndex) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ SourceSnippetcreateFieldInjection(FieldLiteral<?> field, + java.lang.String injecteeName, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Creates a field injecting method and returns a string that invokes the + written method.
+ SourceSnippetcreateFieldInjections(java.lang.Iterable<FieldLiteral<?>> fields, + java.lang.String injecteeName, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Appends a field injecting method for each passed field to the + sourceWriter and returns a string that invokes all written + methods.
+ java.lang.StringcreateMemberInjection(TypeLiteral<?> type, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Generates all the required injector methods to inject members of the given + type, and a standard member-inject method that invokes them.
+ SourceSnippetcreateMethodInjections(java.lang.Iterable<? extends MethodLiteral<?,?>> methods, + java.lang.String injecteeName, + NameGenerator nameGenerator, + java.util.List<InjectorMethod> methodsOutput) + +
+          Creates a method injecting method and returns a string that invokes the new + method.
+static java.lang.CharSequencejoin(java.lang.CharSequence delimiter, + java.lang.Iterable<? extends java.lang.CharSequence> list) + +
+           
+ voidwriteBindingContext(com.google.gwt.user.rebind.SourceWriter writer, + Context context) + +
+          Writes out a binding context, followed by a newline.
+ voidwriteBindingContextJavadoc(com.google.gwt.user.rebind.SourceWriter writer, + Context bindingContext, + Key<?> key) + +
+          Write the Javadoc for the binding of a particular key, showing the context + of the binding.
+ voidwriteBindingContextJavadoc(com.google.gwt.user.rebind.SourceWriter writer, + Context bindingContext, + java.lang.String description) + +
+          Write a Javadoc comment for a binding, including its context.
+ voidwriteMethod(InjectorMethod method, + com.google.gwt.user.rebind.SourceWriter writer, + InjectorWriteContext writeContext) + +
+          Writes the given method to the given source writer.
+ voidwriteMethod(com.google.gwt.user.rebind.SourceWriter writer, + java.lang.String signature, + java.lang.String body) + +
+          Writes a method with the given signature and body to the source writer.
+ voidwriteMethods(java.lang.Iterable<InjectorMethod> methods, + com.google.gwt.user.rebind.SourceWriter writer, + InjectorWriteContext writeContext) + +
+          Writes the given methods to the given source writer.
+ voidwriteNativeMethod(com.google.gwt.user.rebind.SourceWriter writer, + java.lang.String signature, + java.lang.String body) + +
+          Writes a native method with the given signature and body to the source + writer.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+SourceWriteUtil

+
+@Inject
+protected SourceWriteUtil(GuiceUtil guiceUtil,
+                                 MemberCollector memberCollector,
+                                 MethodCallUtil methodCallUtil,
+                                 BindingIndex bindingIndex)
+
+
+ + + + + + + + +
+Method Detail
+ +

+createFieldInjections

+
+public SourceSnippet createFieldInjections(java.lang.Iterable<FieldLiteral<?>> fields,
+                                           java.lang.String injecteeName,
+                                           NameGenerator nameGenerator,
+                                           java.util.List<InjectorMethod> methodsOutput)
+                                    throws NoSourceNameException
+
+
Appends a field injecting method for each passed field to the + sourceWriter and returns a string that invokes all written + methods. +

+

+
Parameters:
fields - fields to be injected
injecteeName - variable that references the object into which values + are injected, in the context of the returned call string +
Returns:
string calling the generated method +
Throws: +
NoSourceNameException
+
+
+
+ +

+createFieldInjection

+
+public SourceSnippet createFieldInjection(FieldLiteral<?> field,
+                                          java.lang.String injecteeName,
+                                          NameGenerator nameGenerator,
+                                          java.util.List<InjectorMethod> methodsOutput)
+                                   throws NoSourceNameException
+
+
Creates a field injecting method and returns a string that invokes the + written method. +

+

+
Parameters:
field - field to be injected
injecteeName - variable that references the object into which values + are injected, in the context of the returned call string
nameGenerator - NameGenerator to be used for ensuring method name uniqueness +
Returns:
string calling the generated method +
Throws: +
NoSourceNameException
+
+
+
+ +

+createMethodInjections

+
+public SourceSnippet createMethodInjections(java.lang.Iterable<? extends MethodLiteral<?,?>> methods,
+                                            java.lang.String injecteeName,
+                                            NameGenerator nameGenerator,
+                                            java.util.List<InjectorMethod> methodsOutput)
+                                     throws NoSourceNameException
+
+
Creates a method injecting method and returns a string that invokes the new + method. The values for the passed method's parameters are retrieved + through the Ginjector. +

+ If the passed method collection contains only one actual method, the native + method will pass on (i.e. return) the result of the actual method's + invocation, if any. +

+ The passed method collection can contain constructors (they'll be treated + correctly) if no injecteeName is passed. The same applies for + static methods. +

+ If a method without parameters is provided, that method will be called and + no parameters will be passed. +

+

+
Parameters:
methods - methods to be called & injected
injecteeName - variable that references the object into which values + are injected, in the context of the returned call string. If + null all passed methods are called as static/constructors.
nameGenerator - NameGenerator to be used for ensuring method name uniqueness
methodsOutput - a list where all new methods created by this + call are added +
Returns:
source snippet calling the generated method +
Throws: +
NoSourceNameException
+
+
+
+ +

+writeBindingContext

+
+public void writeBindingContext(com.google.gwt.user.rebind.SourceWriter writer,
+                                Context context)
+
+
Writes out a binding context, followed by a newline. + +

Binding contexts may contain newlines; this routine translates those for + the SourceWriter to ensure that indents, Javadoc comments, etc are handled + properly. +

+

+
+
+
+
+ +

+writeBindingContextJavadoc

+
+public void writeBindingContextJavadoc(com.google.gwt.user.rebind.SourceWriter writer,
+                                       Context bindingContext,
+                                       java.lang.String description)
+
+
Write a Javadoc comment for a binding, including its context. +

+

+
Parameters:
description - The description of the binding printed before its + location, such as "Foo bound at: "
writer - The writer to use in displaying the context.
bindingContext - The context of the binding.
+
+
+
+ +

+writeBindingContextJavadoc

+
+public void writeBindingContextJavadoc(com.google.gwt.user.rebind.SourceWriter writer,
+                                       Context bindingContext,
+                                       Key<?> key)
+
+
Write the Javadoc for the binding of a particular key, showing the context + of the binding. +

+

+
Parameters:
key - The bound key.
writer - The writer to use to write this comment.
bindingContext - The context of the binding.
+
+
+
+ +

+writeMethod

+
+public void writeMethod(com.google.gwt.user.rebind.SourceWriter writer,
+                        java.lang.String signature,
+                        java.lang.String body)
+
+
Writes a method with the given signature and body to the source writer. +

+

+
Parameters:
writer - writer that the method is written to
signature - method's signature
body - method's body
+
+
+
+ +

+writeNativeMethod

+
+public void writeNativeMethod(com.google.gwt.user.rebind.SourceWriter writer,
+                              java.lang.String signature,
+                              java.lang.String body)
+
+
Writes a native method with the given signature and body to the source + writer. +

+

+
Parameters:
writer - writer that the method is written to
signature - method's signature
body - method's body
+
+
+
+ +

+writeMethod

+
+public void writeMethod(InjectorMethod method,
+                        com.google.gwt.user.rebind.SourceWriter writer,
+                        InjectorWriteContext writeContext)
+                 throws NoSourceNameException
+
+
Writes the given method to the given source writer. +

+

+ +
Throws: +
NoSourceNameException
+
+
+
+ +

+writeMethods

+
+public void writeMethods(java.lang.Iterable<InjectorMethod> methods,
+                         com.google.gwt.user.rebind.SourceWriter writer,
+                         InjectorWriteContext writeContext)
+                  throws NoSourceNameException
+
+
Writes the given methods to the given source writer. +

+

+
Parameters:
methods - the methods to write
writer - the source writer to which the methods should be written
writeContext - the context in which to write the methods +
Throws: +
NoSourceNameException
+
+
+
+ +

+createMemberInjection

+
+public java.lang.String createMemberInjection(TypeLiteral<?> type,
+                                              NameGenerator nameGenerator,
+                                              java.util.List<InjectorMethod> methodsOutput)
+                                       throws NoSourceNameException
+
+
Generates all the required injector methods to inject members of the given + type, and a standard member-inject method that invokes them. +

+

+
Parameters:
type - type for which the injection is performed
nameGenerator - the name generator used to create method names
methodsOutput - a list to which the new injection method and all its + helpers are added +
Returns:
name of the method created +
Throws: +
NoSourceNameException
+
+
+
+ +

+join

+
+public static java.lang.CharSequence join(java.lang.CharSequence delimiter,
+                                          java.lang.Iterable<? extends java.lang.CharSequence> list)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/package-frame.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-frame.html new file mode 100644 index 0000000..840cd28 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-frame.html @@ -0,0 +1,71 @@ + + + + + + +com.google.gwt.inject.rebind.util + + + + + + + + + + + +com.google.gwt.inject.rebind.util + + + + +
+Interfaces  + +
+InjectorMethod +
+InjectorWriteContext +
+MemberCollector.FieldFilter +
+MemberCollector.MethodFilter +
+SourceSnippet +
+SourceWriteUtil.Factory
+ + + + + + +
+Classes  + +
+AbstractInjectorMethod +
+GuiceUtil +
+MemberCollector +
+MethodCallUtil +
+NameGenerator +
+Preconditions +
+PrettyPrinter +
+SourceSnippetBuilder +
+SourceSnippets +
+SourceWriteUtil
+ + + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/package-summary.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-summary.html new file mode 100644 index 0000000..322ce90 --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-summary.html @@ -0,0 +1,233 @@ + + + + + + +com.google.gwt.inject.rebind.util + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package com.google.gwt.inject.rebind.util +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
InjectorMethodA method that will be written to an injector implementation.
InjectorWriteContextGenerates Java expressions and statements that perform injection-related + duties.
MemberCollector.FieldFilterFilter used during the collection of fields to restrict the kind of + collected fields.
MemberCollector.MethodFilterFilter used during the collection of methods to restrict the kind of + collected methods.
SourceSnippetA fragment of code that can be written to an injector implementation.
SourceWriteUtil.FactoryFactory for SourceWriteUtil.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AbstractInjectorMethodCommon base class for injector methods.
GuiceUtilUtil object that offers helper methods which can retrieve Keys + and additional dependency injection information on types or members.
MemberCollectorThis class can be used to collect a type's members, including those of its + (recursive) superclasses and interfaces.
MethodCallUtilUtility code to create method and constructor calls.
NameGeneratorHelper to generate various names for members of a Ginjector + implementation.
PreconditionsSimple static methods to be called at the start of your own methods to verify + correct arguments and state.
PrettyPrinterPretty-printer that formats internal types for human consumption in error + messages.
SourceSnippetBuilderBuilder that composes source snippets from other source snippets.
SourceSnippetsUtility class for source snippets.
SourceWriteUtilHelper object for source writing.
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/com/google/gwt/inject/rebind/util/package-tree.html b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-tree.html new file mode 100644 index 0000000..aad903f --- /dev/null +++ b/trunk/javadoc/com/google/gwt/inject/rebind/util/package-tree.html @@ -0,0 +1,157 @@ + + + + + + +com.google.gwt.inject.rebind.util Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package com.google.gwt.inject.rebind.util +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/constant-values.html b/trunk/javadoc/constant-values.html new file mode 100644 index 0000000..6e82762 --- /dev/null +++ b/trunk/javadoc/constant-values.html @@ -0,0 +1,144 @@ + + + + + + +Constant Field Values + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/deprecated-list.html b/trunk/javadoc/deprecated-list.html new file mode 100644 index 0000000..05689b7 --- /dev/null +++ b/trunk/javadoc/deprecated-list.html @@ -0,0 +1,144 @@ + + + + + + +Deprecated List + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Deprecated API

+
+
+Contents + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/help-doc.html b/trunk/javadoc/help-doc.html new file mode 100644 index 0000000..9ae8a65 --- /dev/null +++ b/trunk/javadoc/help-doc.html @@ -0,0 +1,217 @@ + + + + + + +API Help + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+ +

+Annotation Type

+
+ +

+Each annotation type has its own separate page with the following sections:

+
+ +

+Enum

+
+ +

+Each enum has its own separate page with the following sections:

+
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object. +
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+

+Constant Field Values

+The Constant Field Values page lists the static final fields and their values. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/index-all.html b/trunk/javadoc/index-all.html new file mode 100644 index 0000000..fd11441 --- /dev/null +++ b/trunk/javadoc/index-all.html @@ -0,0 +1,1824 @@ + + + + + + +Index + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +A B C D E F G H I J L M N O P R S T U V W
+

+A

+
+
AbstractGinModule - Class in com.google.gwt.inject.client
A support class for GinModules which reduces repetition and results in + a more readable configuration.
AbstractGinModule() - +Constructor for class com.google.gwt.inject.client.AbstractGinModule +
  +
AbstractInjectorMethod - Class in com.google.gwt.inject.rebind.util
Common base class for injector methods.
AbstractInjectorMethod(boolean, String, String) - +Constructor for class com.google.gwt.inject.rebind.util.AbstractInjectorMethod +
  +
accept(FieldLiteral<?>) - +Method in interface com.google.gwt.inject.rebind.util.MemberCollector.FieldFilter +
  +
accept(MethodLiteral<?, Method>) - +Method in interface com.google.gwt.inject.rebind.util.MemberCollector.MethodFilter +
  +
addBinding(K) - +Method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a binding builder used to add a new entry in the map. +
addBinding(Class<? extends Provider<? extends K>>) - +Method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a binding builder used to add a new entry in the map using a key provider. +
addBinding(TypeLiteral<? extends Provider<? extends K>>) - +Method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a binding builder used to add a new entry in the map using a key provider. +
addBinding() - +Method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a binding builder used to add a new element in the set. +
addBinding(Key<?>, Binding) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
addDependencies(Collection<Dependency>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
addDependency(Dependency) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
addDestinations(Key<?>...) - +Method in class com.google.gwt.inject.rebind.resolution.PathFinder +
Add destinations to be used for the next search. +
addEdge(Dependency) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph.Builder +
  +
addFactoryModule(FactoryModule<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
addPin(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
addRoots(Key<?>...) - +Method in class com.google.gwt.inject.rebind.resolution.PathFinder +
  +
ALL_METHOD_FILTER - +Static variable in class com.google.gwt.inject.rebind.util.MemberCollector +
  +
AnnotatedElementBuilderAdapter - Class in com.google.gwt.inject.rebind.adapter
 
annotatedWith(Class<? extends Annotation>) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedBindingBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Annotation) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedBindingBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Class<? extends Annotation>) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedConstantBindingBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Annotation) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedConstantBindingBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Class<? extends Annotation>) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedElementBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Annotation) - +Method in interface com.google.gwt.inject.client.binder.GinAnnotatedElementBuilder +
See the EDSL examples at GinBinder. +
annotatedWith(Class<? extends Annotation>) - +Method in class com.google.gwt.inject.rebind.adapter.AnnotatedElementBuilderAdapter +
  +
annotatedWith(Annotation) - +Method in class com.google.gwt.inject.rebind.adapter.AnnotatedElementBuilderAdapter +
  +
append(String) - +Method in class com.google.gwt.inject.rebind.util.SourceSnippetBuilder +
Convenience routine to append a constant string to this snippet. +
append(SourceSnippet) - +Method in class com.google.gwt.inject.rebind.util.SourceSnippetBuilder +
  +
asEagerSingleton() - +Method in interface com.google.gwt.inject.client.binder.GinScopedBindingBuilder +
Instructs the Ginjector to eagerly + initialize this singleton-scoped binding upon creation. +
asMethod(boolean, String, String, SourceSnippet) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates an InjectorMethod using the given SourceSnippet as + its body. +
AsyncProvider<T> - Interface in com.google.gwt.inject.client
An object capable of providing an instance of type T asynchronously + via AsyncCallback.
AsyncProviderBinding - Class in com.google.gwt.inject.rebind.binding
Binding implementation for AsyncProvider<T> that generates + the following code for the provider: + +
+   return new %provider_name% () {
+      public void get(final AsyncCallback<%object_to_create%> callback) {
+        GWT.runAsync(new RunAsyncCallback() {
+          public void onSuccess() {
+            callback.onSuccess(%provider_of_object_to_create%.get());
+          }
+          public void onFailure(Throwable ex) {
+            callback.onFailure(ex);
+          }
+        }
+      }
+   }
+
+

+B

+
+
bind(Class<T>) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
bind(TypeLiteral<T>) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
bind(Key<T>) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
bind(Class<T>) - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
See the EDSL examples at GinBinder +
bind(TypeLiteral<T>) - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
See the EDSL examples at GinBinder +
bind(Key<T>) - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
See the EDSL examples at GinBinder +
bind(Class<T>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
bind(TypeLiteral<T>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
bind(Key<T>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
BindClassBinding - Class in com.google.gwt.inject.rebind.binding
Binding implementation that replaces one type with another.
bindConstant() - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
bindConstant() - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
See the EDSL examples at GinBinder +
bindConstant() - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
BindConstantBinding<T> - Class in com.google.gwt.inject.rebind.binding
Binding for a constant value.
binder() - +Method in class com.google.gwt.inject.client.AbstractGinModule +
Gets direct access to the underlying GinBinder. +
binder() - +Method in class com.google.gwt.inject.client.PrivateGinModule +
Returns the current binder. +
Binding - Interface in com.google.gwt.inject.rebind.binding
Interface used by InjectorGeneratorImpl to represent different kinds + of bindings.
BindingFactory - Interface in com.google.gwt.inject.rebind.binding
Factory interface for creating bindings.
BindingFactoryImpl - Class in com.google.gwt.inject.rebind.binding
Guice-based implementation of the binding factory.
BindingFactoryImpl(ErrorManager, GuiceUtil, Class<? extends Ginjector>, MethodCallUtil) - +Constructor for class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
BindingIndex - Interface in com.google.gwt.inject.rebind.binding
Simple interface for an index of bound keys in the Ginjector.
BindingResolver - Class in com.google.gwt.inject.rebind.resolution
Drives the top level Binding Resolution algorithm.
BindingResolver(DependencyExplorer.Factory, UnresolvedBindingValidator.Factory, BindingInstaller.Factory, TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.resolution.BindingResolver +
  +
BindProviderBinding - Class in com.google.gwt.inject.rebind.binding
A binding to call the requested Provider.
build(Class<F>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
build(TypeLiteral<F>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
build(Key<F>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
  +
build() - +Method in class com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder +
Builds the method signature with all types in source form. +
build() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph.Builder +
  +
build() - +Method in class com.google.gwt.inject.rebind.util.SourceSnippetBuilder +
  +
+
+

+C

+
+
callChildGetter(GinjectorBindings, Key<?>) - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given child. +
callChildGetter(GinjectorBindings, Key<?>) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given child. +
CallConstructorBinding - Class in com.google.gwt.inject.rebind.binding
A binding that calls a single constructor directly.
callGetter(Key<?>) - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java expression that evaluates to an injected instance of the + given key. +
callGetter(Key<?>) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that evaluates to an injected instance of the given key + in the current GinjectorBindings. +
callGinjectorInterfaceGetter() - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java statement that evaluates to the implementation of the + current Ginjector interface. +
callGinjectorInterfaceGetter() - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that evaluates to the implementation of the current + Ginjector interface. +
CallGwtDotCreateBinding - Class in com.google.gwt.inject.rebind.binding
A binding that just calls GWT.create() for the requested type.
callMemberInject(TypeLiteral<?>, String) - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java statement (including trailing semicolon) that performs + member injection on a value of the given type. +
callMemberInject(TypeLiteral<?>, String) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet (including a trailing semicolon) that performs member + injection on a value of the given type. +
callMethod(String, String, Iterable<String>) - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java expression that evaluates to an invocation of the named + method on the given package fragment. +
callMethod(String, String, Iterable<String>) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that evaluates to an invocation of the named method on + the given package fragment. +
callParentGetter(Key<?>, GinjectorBindings) - +Method in interface com.google.gwt.inject.rebind.util.InjectorWriteContext +
Generates a Java expression that evaluates to an injected instance of the + given key, as produced by the given parent injector. +
callParentGetter(Key<?>, GinjectorBindings) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that evaluates to an injected instance of the given key, + as produced by the given parent injector. +
checkArgument(boolean) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving one or more parameters to the + calling method. +
checkArgument(boolean, Object) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving one or more parameters to the + calling method. +
checkArgument(boolean, String, Object...) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving one or more parameters to the + calling method. +
checkBindings(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.DoubleBindingChecker +
  +
checkBindings(GinjectorBindings, Map<Key<?>, GinjectorBindings>) - +Method in class com.google.gwt.inject.rebind.DoubleBindingChecker +
  +
checkElementIndex(int, int) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that index specifies a valid element in an array, + list or string of size size. +
checkElementIndex(int, int, String) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that index specifies a valid element in an array, + list or string of size size. +
checkForError() - +Method in class com.google.gwt.inject.rebind.ErrorManager +
  +
checkNotNull(T) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that an object reference passed as a parameter to the calling + method is not null. +
checkNotNull(T, Object) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that an object reference passed as a parameter to the calling + method is not null. +
checkNotNull(T, String, Object...) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that an object reference passed as a parameter to the calling + method is not null. +
checkPositionIndex(int, int) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that index specifies a valid position in an array, + list or string of size size. +
checkPositionIndex(int, int, String) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that index specifies a valid position in an array, + list or string of size size. +
checkPositionIndexes(int, int, int) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures that start and end specify a valid positions + in an array, list or string of size size, and are in order. +
checkState(boolean) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +
checkState(boolean, Object) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +
checkState(boolean, String, Object...) - +Static method in class com.google.gwt.inject.rebind.util.Preconditions +
Ensures the truth of an expression involving the state of the calling + instance, but not involving any parameters to the calling method. +
com.google.gwt.inject.client - package com.google.gwt.inject.client
 
com.google.gwt.inject.client.assistedinject - package com.google.gwt.inject.client.assistedinject
 
com.google.gwt.inject.client.binder - package com.google.gwt.inject.client.binder
 
com.google.gwt.inject.client.multibindings - package com.google.gwt.inject.client.multibindings
 
com.google.gwt.inject.rebind - package com.google.gwt.inject.rebind
 
com.google.gwt.inject.rebind.adapter - package com.google.gwt.inject.rebind.adapter
 
com.google.gwt.inject.rebind.binding - package com.google.gwt.inject.rebind.binding
 
com.google.gwt.inject.rebind.output - package com.google.gwt.inject.rebind.output
 
com.google.gwt.inject.rebind.reflect - package com.google.gwt.inject.rebind.reflect
 
com.google.gwt.inject.rebind.resolution - package com.google.gwt.inject.rebind.resolution
 
com.google.gwt.inject.rebind.util - package com.google.gwt.inject.rebind.util
 
configure(GinBinder) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
configure() - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
configure(GinBinder) - +Method in class com.google.gwt.inject.client.assistedinject.FactoryModule +
  +
configure(GinBinder) - +Method in interface com.google.gwt.inject.client.GinModule +
Contributes bindings and other configurations for this module to binder. +
configure(GinBinder) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
configure() - +Method in class com.google.gwt.inject.client.PrivateGinModule +
Creates bindings and other configurations private to this module. +
configure(Binder) - +Method in class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
configure() - +Method in class com.google.gwt.inject.rebind.adapter.PrivateGinModuleAdapter +
  +
configure() - +Method in class com.google.gwt.inject.rebind.output.OutputModule +
  +
configure() - +Method in class com.google.gwt.inject.rebind.resolution.ResolutionModule +
  +
Context - Class in com.google.gwt.inject.rebind.binding
Describes the context in which a binding or dependency was created.
Context(String, Object...) - +Constructor for class com.google.gwt.inject.rebind.binding.Context +
  +
convertToValidMemberName(String) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
  +
create(GinjectorBindings) - +Method in interface com.google.gwt.inject.rebind.GuiceElementVisitor.GuiceElementVisitorFactory +
  +
create(String) - +Method in interface com.google.gwt.inject.rebind.output.FragmentPackageName.Factory +
Request a fragment package name that can access values in the given + package name. +
create(TreeLogger) - +Method in interface com.google.gwt.inject.rebind.resolution.DependencyExplorer.Factory +
  +
create(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator +
Creates the implicit binding +
create(TreeLogger) - +Method in interface com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator.Factory +
  +
create(TreeLogger) - +Method in interface com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator.Factory +
  +
create(BindingIndex) - +Method in interface com.google.gwt.inject.rebind.util.SourceWriteUtil.Factory +
  +
createChildGinjectorBindings(Class<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
Create a new GinjectorBindings that collects bindings for an injector that is the + child of this GinjectorBindings. +
createConstructorInjection(MethodLiteral<?, Constructor<?>>, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.MethodCallUtil +
Creates a constructor injecting method and returns a string that invokes + the new method. +
createFieldInjection(FieldLiteral<?>, String, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Creates a field injecting method and returns a string that invokes the + written method. +
createFieldInjections(Iterable<FieldLiteral<?>>, String, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Appends a field injecting method for each passed field to the + sourceWriter and returns a string that invokes all written + methods. +
createMemberInjection(TypeLiteral<?>, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Generates all the required injector methods to inject members of the given + type, and a standard member-inject method that invokes them. +
createMethodCallWithInjection(MethodLiteral<?, ?>, String, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.MethodCallUtil +
Creates a method that calls the passed method, injecting its parameters + using getters, and returns a string that invokes the new method. +
createMethodCallWithInjection(MethodLiteral<?, ?>, String, String[], NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.MethodCallUtil +
Creates a method that calls the passed method, injecting its parameters + using getters as necessary, and returns a string that invokes the new + method. +
createMethodInjections(Iterable<? extends MethodLiteral<?, ?>>, String, NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Creates a method injecting method and returns a string that invokes the new + method. +
createMethodName(String) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns a new valid (i.e. +
CreationException - Exception in com.google.gwt.inject.client
Exception thrown by Gin at GWT runtime if an error occurs while creating a + requested object.
CreationException(String) - +Constructor for exception com.google.gwt.inject.client.CreationException +
  +
CreationException(String, Throwable) - +Constructor for exception com.google.gwt.inject.client.CreationException +
  +
CreationException(Throwable) - +Constructor for exception com.google.gwt.inject.client.CreationException +
  +
+
+

+D

+
+
Dependency - Class in com.google.gwt.inject.rebind.binding
Representation of a dependency edge.
Dependency(Key<?>, Key<?>, String, Object...) - +Constructor for class com.google.gwt.inject.rebind.binding.Dependency +
Construct a dependency edge from the given source to target keys. +
Dependency(Key<?>, Key<?>, Context) - +Constructor for class com.google.gwt.inject.rebind.binding.Dependency +
Construct a dependency edge from the given source to target keys. +
Dependency(Key<?>, Key<?>, boolean, boolean, String, Object...) - +Constructor for class com.google.gwt.inject.rebind.binding.Dependency +
Construct a dependency edge from the given source to target keys. +
Dependency(Key<?>, Key<?>, boolean, boolean, Context) - +Constructor for class com.google.gwt.inject.rebind.binding.Dependency +
Construct a dependency edge from the given source to target keys. +
DependencyExplorer - Class in com.google.gwt.inject.rebind.resolution
Explores the unresolved dependencies for a given Ginjector and builds the DependencyGraph + representing all of the implicit bindings that need to be created to satisfy the dependencies.
DependencyExplorer(ImplicitBindingCreator.Factory, TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.resolution.DependencyExplorer +
  +
DependencyExplorer.DependencyExplorerOutput - Class in com.google.gwt.inject.rebind.resolution
Class that packages up all the output of exploring the unresolved dependencies for a Ginjector.
DependencyExplorer.Factory - Interface in com.google.gwt.inject.rebind.resolution
 
DependencyGraph - Class in com.google.gwt.inject.rebind.resolution
A graph of the dependency information between types that need to be injected + at a given injector, called the origin.
DependencyGraph.Builder - Class in com.google.gwt.inject.rebind.resolution
 
DependencyGraph.Builder(GinjectorBindings) - +Constructor for class com.google.gwt.inject.rebind.resolution.DependencyGraph.Builder +
Creates a Builder that constructs a new DependencyGraph for the given origin Ginjector. +
DependencyGraph.GraphPruner - Class in com.google.gwt.inject.rebind.resolution
 
DependencyGraph.GraphPruner(DependencyGraph) - +Constructor for class com.google.gwt.inject.rebind.resolution.DependencyGraph.GraphPruner +
Create a DependencyGraph.GraphPruner for building a new DependencyGraph by (destructively!) removing + edges from an existing DependencyGraph. +
determineScope(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
DoubleBindingChecker - Class in com.google.gwt.inject.rebind
Validate that a Ginjector hierarchy doesn't contain any duplicate bindings.
DoubleBindingChecker(ErrorManager, TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.DoubleBindingChecker +
  +
+
+

+E

+
+
EagerCycleFinder - Class in com.google.gwt.inject.rebind.resolution
Searches for "eager" cycles in the dependency graph.
EagerCycleFinder(ErrorManager) - +Constructor for class com.google.gwt.inject.rebind.resolution.EagerCycleFinder +
  +
equals(Object) - +Method in class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
equals(Object) - +Method in class com.google.gwt.inject.rebind.adapter.PrivateGinModuleAdapter +
  +
equals(Object) - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
equals(Object) - +Method in class com.google.gwt.inject.rebind.output.FragmentPackageName +
  +
ErrorManager - Class in com.google.gwt.inject.rebind
Manages errors that occur during the binding process.
ErrorManager(TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.ErrorManager +
  +
explore(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer +
Explore the unresolved dependencies in the origin Ginjector, and create the corresponding + dependency graph. +
expose(Key<?>) - +Method in interface com.google.gwt.inject.client.binder.PrivateGinBinder +
Expose the given key. +
expose(Class<?>) - +Method in interface com.google.gwt.inject.client.binder.PrivateGinBinder +
Expose the given class. +
expose(TypeLiteral<?>) - +Method in interface com.google.gwt.inject.client.binder.PrivateGinBinder +
Expose the given type. +
expose(Key<T>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
Makes the binding for key available to other modules and the injector. +
expose(Class<?>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
Makes a binding for type available to other modules and the injector. +
expose(TypeLiteral<?>) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
Makes a binding for type available to other modules and the injector. +
expose(Key<?>) - +Method in class com.google.gwt.inject.rebind.adapter.PrivateBinderAdapter +
  +
expose(Class<?>) - +Method in class com.google.gwt.inject.rebind.adapter.PrivateBinderAdapter +
  +
expose(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.adapter.PrivateBinderAdapter +
  +
ExposedChildBinding - Class in com.google.gwt.inject.rebind.binding
Binding that represents a value exposed to this level from lower in the injector hierarchy.
ExposedChildBinding(ErrorManager, Key<?>, GinjectorBindings, Context) - +Constructor for class com.google.gwt.inject.rebind.binding.ExposedChildBinding +
  +
+
+

+F

+
+
FactoryBinding - Class in com.google.gwt.inject.rebind.binding
Binder producing assisted inject factories.
FactoryModule<F> - Class in com.google.gwt.inject.client.assistedinject
For internal Gin use only.
FactoryModule(Map<Key<?>, TypeLiteral<?>>, Key<F>, Object) - +Constructor for class com.google.gwt.inject.client.assistedinject.FactoryModule +
  +
FieldLiteral<T> - Class in com.google.gwt.inject.rebind.reflect
Generic field representation preserving the fields type parametrization.
findAndReportCycles(DependencyGraph) - +Method in class com.google.gwt.inject.rebind.resolution.EagerCycleFinder +
Detects cycles in the given graph. +
findShortestPath() - +Method in class com.google.gwt.inject.rebind.resolution.PathFinder +
Find the shortest path from an unresolved edge in the roots to a key in the destinations. +
forElement(Element) - +Static method in class com.google.gwt.inject.rebind.binding.Context +
Create a Context storing the context of the given Guice + Element. +
format(String, Object...) - +Static method in class com.google.gwt.inject.rebind.binding.Context +
Create a Context from formatted text. +
format(String, Object...) - +Static method in class com.google.gwt.inject.rebind.util.PrettyPrinter +
Generate a string based on a format template as String.format(java.lang.String, java.lang.Object...) + would, using the pretty-printing rules specified in the class + documentation. +
formatParameterName(int) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns a string representing a parameter name for a method signature. +
forText(String) - +Static method in class com.google.gwt.inject.rebind.binding.Context +
Create a Context from a text string. +
forText(String) - +Static method in class com.google.gwt.inject.rebind.util.SourceSnippets +
Creates a snippet that generates a constant text string. +
FragmentPackageName - Class in com.google.gwt.inject.rebind.output
Wrapping a String in FragmentPackageName converts it to a legal name + for a fragment package.
FragmentPackageName.Factory - Interface in com.google.gwt.inject.rebind.output
 
+
+

+G

+
+
generate(TreeLogger, GeneratorContext, String) - +Method in class com.google.gwt.inject.rebind.GinjectorGenerator +
  +
get(AsyncCallback<? super T>) - +Method in interface com.google.gwt.inject.client.AsyncProvider +
  +
get() - +Method in class com.google.gwt.inject.rebind.adapter.GwtDotCreateProvider +
  +
get(Field, TypeLiteral<T>) - +Static method in class com.google.gwt.inject.rebind.reflect.FieldLiteral +
Returns a new field literal based on the passed field and its declaring + type. +
get(Method, TypeLiteral<T>) - +Static method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Creates a new MethodLiteral based on the passed method and its + declaring type. +
get(Constructor<?>, TypeLiteral<T>) - +Static method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Creates a new MethodLiteral based on the passed constructor and + its declaring type. +
getAllKeys() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph +
Returns all the keys that appear in the Dependency Graph, other than the "common root", + Dependency.GINJECTOR. +
getAnnotation(Class<T>) - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's annotation of the passed type or null if no + matching annotation is present. +
getAnnotations() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's annotations. +
getAssistedInjectMethodName(Key<?>, String) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns the name of an assisted injection helper method. +
getAsyncProviderBinding(Key<?>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getAsyncProviderBinding(Key<?>) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getBindClassBinding(Key<?>, Key<?>, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getBindClassBinding(Key<?>, Key<?>, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getBindConstantBinding(Key<T>, T, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getBindConstantBinding(Key<T>, T, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getBinding(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getBindingAnnotation() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's binding annotation or null if no such + annotation is present. +
getBindingAnnotation(Annotation[]) - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
  +
getBindingErrors() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Returns pairs containing the Key<?>s that were unavailable from the injector + hierarchy but that we were unable to create implicit bindings for and an error message + describing the problem we encountered while creating the implicit binding. +
getBindings() - +Method in class com.google.gwt.inject.client.assistedinject.FactoryModule +
  +
getBindings() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getBindProviderBinding(Key<? extends Provider<?>>, Key<?>, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getBindProviderBinding(Key<? extends Provider<?>>, Key<?>, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getBoundKeys() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getCallConstructorBinding(MethodLiteral<?, Constructor<?>>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getCallConstructorBinding(MethodLiteral<?, Constructor<?>>) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getCallGwtDotCreateBinding(TypeLiteral<?>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getCallGwtDotCreateBinding(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getCanonicalClassName(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.GinjectorNameGenerator +
  +
getChildBindings() - +Method in class com.google.gwt.inject.rebind.binding.ExposedChildBinding +
  +
getChildInjectorGetterMethodName(String) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns the name of a getter for a child injector. +
getChildren() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getChildWhichBindsLocally(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
Returns the child injector which binds the given key. +
getClassName(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.GinjectorNameGenerator +
  +
getContext() - +Method in interface com.google.gwt.inject.rebind.binding.Binding +
Returns the context in which this binding was created. +
getContext() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
getCreationStatement(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.CallConstructorBinding +
  +
getCreationStatement(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.AsyncProviderBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.BindClassBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.BindConstantBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in interface com.google.gwt.inject.rebind.binding.Binding +
Gets one or more fully formed Java statements that create the bound value + and store it in a new local variable named result. +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.BindProviderBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.ExposedChildBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.FactoryBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.GinjectorBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.ImplicitProviderBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.ParentBinding +
  +
getCreationStatements(NameGenerator, List<InjectorMethod>) - +Method in class com.google.gwt.inject.rebind.binding.ProviderMethodBinding +
  +
getDeclaringType() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns the type declaring this member. +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.AsyncProviderBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.BindClassBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.BindConstantBinding +
  +
getDependencies() - +Method in interface com.google.gwt.inject.rebind.binding.Binding +
Returns the set of dependencies that this binding produces. +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.BindProviderBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.ExposedChildBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.FactoryBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.GinjectorBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.ImplicitProviderBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.ParentBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.binding.ProviderMethodBinding +
  +
getDependencies() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getDependencies(Key<?>, MethodLiteral<?, ?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Collects and returns all keys required to inject the given method. +
getDependenciesOf(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph +
  +
getDependenciesTargeting(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph +
  +
getExceptionTypes() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's exception types, if appropriate parametrized with + the declaring class's type parameters. +
getExpectedTypeName() - +Method in class com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding +
  +
getExpectedTypeName() - +Method in class com.google.gwt.inject.rebind.binding.RemoteServiceProxyBinding +
  +
getExposedChildBinding(Key<?>, GinjectorBindings, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getExposedChildBinding(Key<?>, GinjectorBindings, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getFactoryBinding(Map<Key<?>, TypeLiteral<?>>, Key<?>, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getFactoryBinding(Map<Key<?>, TypeLiteral<?>>, Key<?>, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getFactoryModules() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getFactoryType() - +Method in class com.google.gwt.inject.client.assistedinject.FactoryModule +
  +
getFieldName(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.GinjectorNameGenerator +
  +
getFields(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.util.MemberCollector +
Returns all fields in the provided type, including those of the type's + (recursive) super classes. +
getFieldType() - +Method in class com.google.gwt.inject.rebind.reflect.FieldLiteral +
Returns the field's type, if appropriate parametrized with the declaring + class's type parameters. +
getFragmentCanonicalClassName(String, FragmentPackageName) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Computes the canonical name (including package) of a single fragment of a + Ginjector. +
getFragmentClassName(String, FragmentPackageName) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Computes the name of a single fragment of a Ginjector. +
getFragmentFieldName(FragmentPackageName) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Computes the field name of a single fragment of an injector. +
getFragmentGetterMethodName(FragmentPackageName) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returnst he name of a getter for an injector fragment. +
getGetterMethodName(Key<?>) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns the key's getter method name. +
getGetterMethodPackage() - +Method in interface com.google.gwt.inject.rebind.binding.Binding +
Returns the package in which the getter for the bound key is created. +
getGetterMethodPackage() - +Method in class com.google.gwt.inject.rebind.binding.ExposedChildBinding +
The getter must be placed in the same package as the child getter, to ensure that its return + type is visible. +
getGetterMethodPackage() - +Method in class com.google.gwt.inject.rebind.binding.ParentBinding +
The getter must be placed in the same package as the parent getter, to ensure that its return + type is visible. +
getGinjectorBinding() - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getGinjectorBinding() - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getGinjectorInterface() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getGinjectorInterfaceFieldName() - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Computes the name of the field in which the Ginjector interface + implementation is stored. +
getGinjectorInterfaceGetterMethodName() - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Computes the name of the method used to retrieve the Ginjector interface + implementation. +
getGraph() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Returns the DependencyGraph containing information about nodes found from the origin. +
getImplicitBindings() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Returns map entries containing the Key<?>s that weren't already available and the + Binding we created (implicitly) for it. +
getImplicitlyBoundKeys() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Return the Key<?>s that weren't already available and for which we successfully + created implicit bindings. +
getImplicitProviderBinding(Key<?>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getImplicitProviderBinding(Key<?>) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getInvalidKeys(DependencyExplorer.DependencyExplorerOutput) - +Method in class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator +
Returns an UnresolvedBindingValidator.InvalidKeys object containing information about all the errors that we + discovered in required keys, and the set of all optional bindings that should be removed from + the graph in order to make it valid. +
getInvalidOptionalKeys() - +Method in class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator.InvalidKeys +
  +
getInvalidRequiredKeys() - +Method in class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator.InvalidKeys +
  +
getKey(MethodLiteral<?, ?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Retrieves a key based on the passed Ginjector method. +
getKey(FieldLiteral<?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Returns a key based on the passed field, taking any binding annotations + into account. +
getMember() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
  +
getMemberInjectionDependencies(Key<?>, TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Collects and returns all keys required to member-inject the given class. +
getMemberInjectMethodName(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns the type's member inject method name. +
getMemberInjectRequests() - +Method in interface com.google.gwt.inject.rebind.binding.Binding +
Returns the set of types for which this binding requires member injection methods to be + written. +
getMemberInjectRequests() - +Method in class com.google.gwt.inject.rebind.binding.FactoryBinding +
  +
getMemberInjectRequests() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getMessages() - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
getMethodBody(InjectorWriteContext) - +Method in interface com.google.gwt.inject.rebind.util.InjectorMethod +
Returns the body of the method in the given context (e.g., "return this;") +
getMethods(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.util.MemberCollector +
Returns all methods in the provided type, including those of the type's + (recursive) super classes and interfaces. +
getMethodSignature() - +Method in class com.google.gwt.inject.rebind.util.AbstractInjectorMethod +
  +
getMethodSignature() - +Method in interface com.google.gwt.inject.rebind.util.InjectorMethod +
Returns the signature of the method (e.g., "public void foo()") +
getModifiers() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's modifiers. +
getModule() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getModuleName() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getName() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's name. +
getNameGenerator() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getOrigin() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph +
  +
getPackageName() - +Method in class com.google.gwt.inject.rebind.util.AbstractInjectorMethod +
  +
getPackageName() - +Method in interface com.google.gwt.inject.rebind.util.InjectorMethod +
Get the name of the package in which this method should be created. +
getParameterAnnotations() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
  +
getParameterKeys() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's parameter keys, if appropriate parametrized with the + declaring class's type parameters. +
getParameterTypes() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's parameter types, if appropriate parametrized with + the declaring class's type parameters. +
getParent() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getParentBinding(Key<?>, GinjectorBindings, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getParentBinding(Key<?>, GinjectorBindings, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getParentBindings() - +Method in class com.google.gwt.inject.rebind.binding.ParentBinding +
  +
getPreExistingLocations() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Returns a map from each Key<?> that was already available in the injector hierarchy + to the Ginjector on which it was found. +
getProvidedKey(Key<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Given a parameterized type (such as a Provider<Foo>) return the + parameter (Foo). +
getProviderMethodBinding(ProviderMethod<?>, Context) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getProviderMethodBinding(ProviderMethod<?>, Context) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getRawDeclaringType() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns this member's raw (i.e. +
getRawParameterTypes() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's parameter types without any type parametrization + applied. +
getRemoteServiceProxyBinding(TypeLiteral<?>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingFactory +
  +
getRemoteServiceProxyBinding(TypeLiteral<?>) - +Method in class com.google.gwt.inject.rebind.binding.BindingFactoryImpl +
  +
getReturnType() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's return type, if appropriate parametrized with the + declaring class's type parameters. +
getSingletonFieldName(Key<?>) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Returns the key's singleton field name. +
getSource() - +Method in class com.google.gwt.inject.client.assistedinject.FactoryModule +
Returns the source location of the factory module's declaration. +
getSource() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
getSource(InjectorWriteContext) - +Method in interface com.google.gwt.inject.rebind.util.SourceSnippet +
Format this code for the given write context. +
getSourceName(TypeLiteral<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Alternate toString method for TypeLiterals that fixes a JDK bug that was + replicated in Guice. +
getSourceName(Type) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns a string representation of the passed type's name while ensuring + that all type names (base and parameters) are converted to source type + names. +
getStaticInjectionRequests() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
getTarget() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
getTypeNameToCreate() - +Method in class com.google.gwt.inject.rebind.binding.CallGwtDotCreateBinding +
  +
getTypeNameToCreate() - +Method in class com.google.gwt.inject.rebind.binding.RemoteServiceProxyBinding +
  +
getTypeParameters() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns this method's type parameters. +
getUserPackageName(TypeLiteral<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Return the name of the package from which the given type can be used. +
getUserPackageName(Key<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Return the name of the package from which the given key can be used. +
GinAnnotatedBindingBuilder<T> - Interface in com.google.gwt.inject.client.binder
See the EDSL examples at GinBinder.
GinAnnotatedConstantBindingBuilder - Interface in com.google.gwt.inject.client.binder
See the EDSL examples at GinBinder.
GinAnnotatedElementBuilder - Interface in com.google.gwt.inject.client.binder
Builder returned from calls to expose, used to add an (optional) annotation + to the element that is being exposed.
GinBinder - Interface in com.google.gwt.inject.client.binder
Collects configuration information (primarily bindings) which will be + used to create a Ginjector.
GinConstantBindingBuilder - Interface in com.google.gwt.inject.client.binder
Binds to a constant value.
GinFactoryModuleBuilder - Class in com.google.gwt.inject.client.assistedinject
Copied and modified from + FactoryModuleBuilder.
GinFactoryModuleBuilder() - +Constructor for class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
  +
Ginjector - Interface in com.google.gwt.inject.client
Where the GWT world stops and the GIN/Guice world begins.
GINJECTOR - +Static variable in class com.google.gwt.inject.rebind.binding.Dependency +
A unique key used to indicate that a dependency originated in the Ginjector; for instance, + keys produced by the root Ginjector, or while visiting bindings in GuiceBindingVisitor + often have as their source Dependency.GINJECTOR. +
GinjectorBinding - Class in com.google.gwt.inject.rebind.binding
Simple binding that allows injection of the ginjector.
GinjectorBinding(Class<? extends Ginjector>) - +Constructor for class com.google.gwt.inject.rebind.binding.GinjectorBinding +
  +
GinjectorBindings - Class in com.google.gwt.inject.rebind
Stores information that describes the bindings present in a given injector, + and the relationship to the other injectors in the hierarchy.
GinjectorBindings(NameGenerator, TreeLogger, GuiceUtil, Class<? extends Ginjector>, Provider<GinjectorBindings>, MemberCollector, ErrorManager, BindingResolver) - +Constructor for class com.google.gwt.inject.rebind.GinjectorBindings +
  +
GinjectorGenerator - Class in com.google.gwt.inject.rebind
Generator for implementations of Ginjector.
GinjectorGenerator() - +Constructor for class com.google.gwt.inject.rebind.GinjectorGenerator +
  +
GinjectorImplOutputter - Class in com.google.gwt.inject.rebind.output
Outputs all the generated classes for an implementation of a Ginjector + interface.
GinjectorImplOutputter(GinjectorBindingsOutputter, GeneratorContext, FragmentPackageName.Factory, GinjectorNameGenerator, GuiceUtil, TreeLogger, Provider<MemberCollector>, ReachabilityAnalyzer, SourceWriteUtil.Factory) - +Constructor for class com.google.gwt.inject.rebind.output.GinjectorImplOutputter +
  +
GinjectorInterfaceType - Annotation Type in com.google.gwt.inject.rebind
A binding annotation to be applied to a Class for + the type of the Ginjector interface being generated.
GinjectorNameGenerator - Class in com.google.gwt.inject.rebind
Manages class and field names for GinjectorBindings.
GinLinkedBindingBuilder<T> - Interface in com.google.gwt.inject.client.binder
See the EDSL examples at GinBinder.
GinMapBinder<K,V> - Class in com.google.gwt.inject.client.multibindings
A utility that mimics the behavior and API of Guice MapBinder for GIN.
GinModule - Interface in com.google.gwt.inject.client
GIN counterpart of Guice's Module.
GinModuleAdapter - Class in com.google.gwt.inject.rebind.adapter
Makes a GinModule available as a Module.
GinModuleAdapter(GinModule) - +Constructor for class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
GinModuleAdapter(GinModule, GinjectorBindings) - +Constructor for class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
GinModuleAdapter(GinModule, GinjectorBindings, boolean) - +Constructor for class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
GinModules - Annotation Type in com.google.gwt.inject.client
An annotation to put on @Ginjector subtypes to indicate which + GinModule implementations to use.
GinMultibinder<T> - Class in com.google.gwt.inject.client.multibindings
A utility that mimics the behavior and API of Guice Multibinder for GIN.
GinMultibinder(GinBinder, TypeLiteral<T>, Key<Provider<T>>) - +Constructor for class com.google.gwt.inject.client.multibindings.GinMultibinder +
  +
GinScope - Enum in com.google.gwt.inject.rebind
Enum for scopes that GIN supports.
GinScopedBindingBuilder - Interface in com.google.gwt.inject.client.binder
See the EDSL examples at GinBinder.
GuiceBindingVisitor<T> - Class in com.google.gwt.inject.rebind
Gathers information about Guice Bindings and adds the information to a GinjectorBindings.
GuiceBindingVisitor(Key<T>, List<Message>, GinjectorBindings, BindingFactory) - +Constructor for class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
GuiceBindingVisitorFactory - Class in com.google.gwt.inject.rebind
Factory for creating GuiceBindingVisitors.
GuiceBindingVisitorFactory(BindingFactory) - +Constructor for class com.google.gwt.inject.rebind.GuiceBindingVisitorFactory +
  +
GuiceElementVisitor - Class in com.google.gwt.inject.rebind
Gathers elements and adds them to a GinjectorBindings.
GuiceElementVisitor(TreeLogger, GuiceElementVisitor.GuiceElementVisitorFactory, GuiceBindingVisitorFactory, ErrorManager, GinjectorBindings, BindingFactory) - +Constructor for class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
GuiceElementVisitor.GuiceElementVisitorFactory - Interface in com.google.gwt.inject.rebind
Interface for use with Assisted Injection for creating GuiceElementVisitor
GuiceUtil - Class in com.google.gwt.inject.rebind.util
Util object that offers helper methods which can retrieve Keys + and additional dependency injection information on types or members.
GuiceUtil(MemberCollector) - +Constructor for class com.google.gwt.inject.rebind.util.GuiceUtil +
  +
GwtDotCreateProvider<T> - Class in com.google.gwt.inject.rebind.adapter
A dummy provider to register for cases like + bind().in(scope) (where there is no target key).
+
+

+H

+
+
hasAccessibleDefaultConstructor(Class<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the given class has a non-private default + constructor, or has no constructor at all. +
hasEagerSingletonBindingInSubtree() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
Returns true if any binding in this injector or in one of its + descendants is an eager singleton binding. +
hashCode() - +Method in class com.google.gwt.inject.rebind.adapter.GinModuleAdapter +
  +
hashCode() - +Method in class com.google.gwt.inject.rebind.adapter.PrivateGinModuleAdapter +
  +
hashCode() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
hashCode() - +Method in class com.google.gwt.inject.rebind.output.FragmentPackageName +
  +
hasInject(MemberLiteral<?, ?>) - +Static method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Returns true if the passed member has a inject annotation. +
hasStaticInjectionRequestInSubtree() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
Returns true if this injector or any of its children has a static + injection request. +
+
+

+I

+
+
implement(Class<T>, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Class<T>, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Class<T>, Annotation, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Class<T>, Annotation, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, Annotation, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, Annotation, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Class<T>, Class<? extends Annotation>, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Class<T>, Class<? extends Annotation>, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, Class<? extends Annotation>, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(TypeLiteral<T>, Class<? extends Annotation>, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Key<T>, Class<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
implement(Key<T>, TypeLiteral<? extends T>) - +Method in class com.google.gwt.inject.client.assistedinject.GinFactoryModuleBuilder +
See the factory configuration examples at GinFactoryModuleBuilder. +
ImplicitBindingCreator - Class in com.google.gwt.inject.rebind.resolution
Class responsible for creating implicit bindings.
ImplicitBindingCreator(BindingFactory, GeneratorContext, TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator +
  +
ImplicitBindingCreator.BindingCreationException - Exception in com.google.gwt.inject.rebind.resolution
Exception thrown to indicate an error occurred during binding creation.
ImplicitBindingCreator.BindingCreationException(String, Object...) - +Constructor for exception com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator.BindingCreationException +
Create a new BindingCreationException using the given format string and arguments. +
ImplicitBindingCreator.Factory - Interface in com.google.gwt.inject.rebind.resolution
 
ImplicitProviderBinding - Class in com.google.gwt.inject.rebind.binding
Binding implementation for Provider<T> that just uses the binding + to T.
in(Class<? extends Annotation>) - +Method in interface com.google.gwt.inject.client.binder.GinScopedBindingBuilder +
See the EDSL examples at GinBinder. +
Injectable - Annotation Type in com.google.gwt.inject.rebind.binding
Binding for MemberCollectors + that collect injectable methods and fields (i.e.
InjectorMethod - Interface in com.google.gwt.inject.rebind.util
A method that will be written to an injector implementation.
InjectorWriteContext - Interface in com.google.gwt.inject.rebind.util
Generates Java expressions and statements that perform injection-related + duties.
install(GinModule) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
install(GinModule) - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
Uses the given module to configure more bindings. +
install(GinModule) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
isAnnotationPresent(Class<? extends Annotation>) - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns true if an annotation of the passed type is present on + this member. +
isBound(Key<?>) - +Method in interface com.google.gwt.inject.rebind.binding.BindingIndex +
Returns true if the passed key is bound in the Ginjector. +
isBound(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
isBoundLocallyInChild(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
isClassOrInterface(Type) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the passed type is either a class or an interface + (but not a primitive, enum or similar). +
isConstantKey(Key<?>) - +Static method in class com.google.gwt.inject.rebind.binding.BindConstantBinding +
Returns true if the provided key is a valid constant key, i.e. +
isConstructor() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns true if this method literal is based on a constructor. +
isDefaultAccess() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns true if this member is declared as default access. +
isLazy() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
isLegacyFinalField() - +Method in class com.google.gwt.inject.rebind.reflect.FieldLiteral +
Returns true if this is a final field that past versions of Gin + allowed to be set by member injection. +
isMemberInject(MethodLiteral<?, ?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Returns true if the passed Ginjector method is used for member + injection (i.e. +
isNative() - +Method in class com.google.gwt.inject.rebind.util.AbstractInjectorMethod +
  +
isNative() - +Method in interface com.google.gwt.inject.rebind.util.InjectorMethod +
Returns whether this is a native method. +
isOptional() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
isOptional(MemberLiteral<?, ?>) - +Method in class com.google.gwt.inject.rebind.util.GuiceUtil +
Returns true if the passed method has an @Inject + annotation and the injection is marked as optional ( + @Inject(optional = true)). +
isPinned(Key<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
isPrivate() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns true if this member is declared private. +
isPrivate(Class<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the passed type's visibility is private. +
isPrivate(TypeLiteral<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the passed type's visibility is private. +
isPrivate(Member) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the passed member's visibility is private. +
isPublic() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns true if this member is declared public. +
isPublic(Class<?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Returns true if the passed type's visibility is public. +
isRemoteServiceProxy(TypeLiteral<?>) - +Static method in class com.google.gwt.inject.rebind.binding.RemoteServiceProxyBinding +
  +
isRequired(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.RequiredKeySet +
  +
isStatic() - +Method in class com.google.gwt.inject.rebind.reflect.MemberLiteral +
Returns true if this member is declared static. +
+
+

+J

+
+
join(CharSequence, Iterable<? extends CharSequence>) - +Static method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
  +
+
+

+L

+
+
log(TreeLogger, TreeLogger.Type, String, Object...) - +Static method in class com.google.gwt.inject.rebind.util.PrettyPrinter +
Log a pretty-printed message if the given log level is active. +
logDoubleBind(Key<?>, Binding, GinjectorBindings, Binding, GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.ErrorManager +
  +
logError(String, Object...) - +Method in class com.google.gwt.inject.rebind.ErrorManager +
  +
logError(String, Throwable, Object...) - +Method in class com.google.gwt.inject.rebind.ErrorManager +
  +
+
+

+M

+
+
mapOf(TypeLiteral<K>, TypeLiteral<V>) - +Static method in class com.google.gwt.inject.client.multibindings.TypeLiterals +
  +
markAsUsed(String) - +Method in class com.google.gwt.inject.rebind.util.NameGenerator +
Reserves the given name to prevent new methods to be created with it. +
MemberCollector - Class in com.google.gwt.inject.rebind.util
This class can be used to collect a type's members, including those of its + (recursive) superclasses and interfaces.
MemberCollector(TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.util.MemberCollector +
  +
MemberCollector.FieldFilter - Interface in com.google.gwt.inject.rebind.util
Filter used during the collection of fields to restrict the kind of + collected fields.
MemberCollector.MethodFilter - Interface in com.google.gwt.inject.rebind.util
Filter used during the collection of methods to restrict the kind of + collected methods.
MemberLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement> - Class in com.google.gwt.inject.rebind.reflect
Generic member representation preserving the member's type parameters.
MemberLiteral(M, TypeLiteral<T>) - +Constructor for class com.google.gwt.inject.rebind.reflect.MemberLiteral +
  +
MethodCallUtil - Class in com.google.gwt.inject.rebind.util
Utility code to create method and constructor calls.
MethodCallUtil() - +Constructor for class com.google.gwt.inject.rebind.util.MethodCallUtil +
  +
MethodLiteral<T,M extends java.lang.reflect.Member & java.lang.reflect.AnnotatedElement & java.lang.reflect.GenericDeclaration> - Class in com.google.gwt.inject.rebind.reflect
Generic method and constructor representation that preserves the member's + parametrization and allows common operations on methods and constructors + where appropriate.
MethodLiteral(M, TypeLiteral<T>) - +Constructor for class com.google.gwt.inject.rebind.reflect.MethodLiteral +
  +
ModuleClasses - Annotation Type in com.google.gwt.inject.rebind
A binding annotation to be applied to a Collection containing all GinModule + classes used to configure the current Ginjector.
+
+

+N

+
+
NameGenerator - Class in com.google.gwt.inject.rebind.util
Helper to generate various names for members of a Ginjector + implementation.
NameGenerator() - +Constructor for class com.google.gwt.inject.rebind.util.NameGenerator +
  +
newMapBinder(GinBinder, TypeLiteral<K>, TypeLiteral<V>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation. +
newMapBinder(GinBinder, Class<K>, Class<V>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with no binding annotation. +
newMapBinder(GinBinder, TypeLiteral<K>, TypeLiteral<V>, Annotation) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation. +
newMapBinder(GinBinder, Class<K>, Class<V>, Annotation) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotation. +
newMapBinder(GinBinder, TypeLiteral<K>, TypeLiteral<V>, Class<? extends Annotation>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType. +
newMapBinder(GinBinder, Class<K>, Class<V>, Class<? extends Annotation>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Returns a new mapbinder that collects entries of keyType/valueType in a + Map that is itself bound with annotationType. +
newParameterizedType(Class<?>, TypeLiteral<?>...) - +Static method in class com.google.gwt.inject.client.multibindings.TypeLiterals +
  +
newSetBinder(GinBinder, TypeLiteral<T>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation. +
newSetBinder(GinBinder, Class<T>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set + that is itself bound with no binding annotation. +
newSetBinder(GinBinder, TypeLiteral<T>, Annotation) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation. +
newSetBinder(GinBinder, Class<T>, Annotation) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotation. +
newSetBinder(GinBinder, TypeLiteral<T>, Class<? extends Annotation>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set + that is itself bound with annotationType. +
newSetBinder(GinBinder, Class<T>, Class<? extends Annotation>) - +Static method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Returns a new multibinder that collects instances of type in a Set that is + itself bound with annotationType. +
NoGinModules - Annotation Type in com.google.gwt.inject.client
Gin warns in cases where no GinModule is registered with a Ginjector via a + @GinModules annotation.
nonAbstractModifiers(MethodLiteral<?, Method>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
If present, strips the "abstract" modifier from the passed method's + modifiers. +
NoSourceNameException - Exception in com.google.gwt.inject.rebind.reflect
Thrown if a source name is requested but cannot be provided.
NoSourceNameException(Type) - +Constructor for exception com.google.gwt.inject.rebind.reflect.NoSourceNameException +
  +
+
+

+O

+
+
onGraph(DependencyGraph) - +Method in class com.google.gwt.inject.rebind.resolution.PathFinder +
  +
OutputModule - Class in com.google.gwt.inject.rebind.output
Guice module binding the components of the output package.
OutputModule() - +Constructor for class com.google.gwt.inject.rebind.output.OutputModule +
  +
+
+

+P

+
+
ParentBinding - Class in com.google.gwt.inject.rebind.binding
Binding that represents a value inherited from higher in the injector hierarchy.
PathFinder - Class in com.google.gwt.inject.rebind.resolution
Finds the shortest path from the edges in the root set to any of one or more destination keys.
PathFinder() - +Constructor for class com.google.gwt.inject.rebind.resolution.PathFinder +
  +
permitDuplicates() - +Method in class com.google.gwt.inject.client.multibindings.GinMapBinder +
Configures the MapBinder to handle duplicate entries. +
permitDuplicates() - +Method in class com.google.gwt.inject.client.multibindings.GinMultibinder +
Configures the bound set to silently discard duplicate elements. +
Preconditions - Class in com.google.gwt.inject.rebind.util
Simple static methods to be called at the start of your own methods to verify + correct arguments and state.
PrettyPrinter - Class in com.google.gwt.inject.rebind.util
Pretty-printer that formats internal types for human consumption in error + messages.
PrivateBinderAdapter - Class in com.google.gwt.inject.rebind.adapter
Provides the PrivateGinBinder interface and adapts it to a regular Guice + PrivateBinder.
PrivateGinBinder - Interface in com.google.gwt.inject.client.binder
Extension of GinBinder that allows for exposing keys.
PrivateGinModule - Class in com.google.gwt.inject.client
Gin counterpart of Guice's PrivateModule.
PrivateGinModule() - +Constructor for class com.google.gwt.inject.client.PrivateGinModule +
  +
PrivateGinModuleAdapter - Class in com.google.gwt.inject.rebind.adapter
Makes a PrivateGinModule available as a Module.
PrivateGinModuleAdapter(PrivateGinModule, GinjectorBindings) - +Constructor for class com.google.gwt.inject.rebind.adapter.PrivateGinModuleAdapter +
  +
ProviderMethodBinding - Class in com.google.gwt.inject.rebind.binding
A binding that calls a provider method.
providerOf(TypeLiteral<V>) - +Static method in class com.google.gwt.inject.client.multibindings.TypeLiterals +
  +
pruneInvalidOptional(DependencyExplorer.DependencyExplorerOutput, UnresolvedBindingValidator.InvalidKeys) - +Method in class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator +
Prune all of the invalid optional keys from the graph. +
+
+

+R

+
+
ReflectUtil - Class in com.google.gwt.inject.rebind.reflect
Utility providing helper methods around reflection.
ReflectUtil() - +Constructor for class com.google.gwt.inject.rebind.reflect.ReflectUtil +
  +
ReflectUtil.SignatureBuilder - Class in com.google.gwt.inject.rebind.reflect
Builder that produces the signature of a method.
RemoteServiceProxyBinding - Class in com.google.gwt.inject.rebind.binding
A binding that calls GWT.create() for the non-"Async" version + of the requested type.
remove(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph.GraphPruner +
Removes the given key, all its incoming edges, and all its outgoing edges, from the graph. +
removeAbstractModifier() - +Method in class com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder +
Removes the abstract modifier from the current modifiers (either the last + modifiers set by ReflectUtil.SignatureBuilder.withModifiers(int), or the modifiers of the method + passed to ReflectUtil.signatureBuilder(com.google.gwt.inject.rebind.reflect.MethodLiteral)). +
removeBinding(Key<?>) - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
Removes an implicit binding from the information being tracked. +
replaceLast(String, char, char) - +Static method in class com.google.gwt.inject.rebind.util.NameGenerator +
  +
requestStaticInjection(Class<?>...) - +Method in class com.google.gwt.inject.client.AbstractGinModule +
  +
requestStaticInjection(Class<?>...) - +Method in interface com.google.gwt.inject.client.binder.GinBinder +
Upon successful creation, the Ginjector will inject static fields + and methods in the given classes. +
requestStaticInjection(Class<?>...) - +Method in class com.google.gwt.inject.client.PrivateGinModule +
  +
RequiredKeySet - Class in com.google.gwt.inject.rebind.resolution
Computes the set of required keys in a given DependencyGraph.
RequiredKeySet(DependencyGraph) - +Constructor for class com.google.gwt.inject.rebind.resolution.RequiredKeySet +
  +
ResolutionModule - Class in com.google.gwt.inject.rebind.resolution
Bindings for components of the resolver.
ResolutionModule() - +Constructor for class com.google.gwt.inject.rebind.resolution.ResolutionModule +
  +
resolveBindings() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
resolveBindings(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.resolution.BindingResolver +
  +
RootBindings - Annotation Type in com.google.gwt.inject.rebind
A binding annotation to be applied to a GinjectorBindings for + the top level bindings.
+
+

+S

+
+
setFieldFilter(MemberCollector.FieldFilter) - +Method in class com.google.gwt.inject.rebind.util.MemberCollector +
Sets this collector's field filter. +
setMethodFilter(MemberCollector.MethodFilter) - +Method in class com.google.gwt.inject.rebind.util.MemberCollector +
Sets this collector's method filter. +
setModule(Class<?>) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
setOf(TypeLiteral<V>) - +Static method in class com.google.gwt.inject.client.multibindings.TypeLiterals +
  +
setParent(GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
signatureBuilder(MethodLiteral<?, ?>) - +Static method in class com.google.gwt.inject.rebind.reflect.ReflectUtil +
Builds the signature of a method with all types in source form. +
size() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyExplorer.DependencyExplorerOutput +
  +
size() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph +
  +
SourceSnippet - Interface in com.google.gwt.inject.rebind.util
A fragment of code that can be written to an injector implementation.
SourceSnippetBuilder - Class in com.google.gwt.inject.rebind.util
Builder that composes source snippets from other source snippets.
SourceSnippetBuilder() - +Constructor for class com.google.gwt.inject.rebind.util.SourceSnippetBuilder +
  +
SourceSnippets - Class in com.google.gwt.inject.rebind.util
Utility class for source snippets.
SourceWriteUtil - Class in com.google.gwt.inject.rebind.util
Helper object for source writing.
SourceWriteUtil(GuiceUtil, MemberCollector, MethodCallUtil, BindingIndex) - +Constructor for class com.google.gwt.inject.rebind.util.SourceWriteUtil +
  +
SourceWriteUtil.Factory - Interface in com.google.gwt.inject.rebind.util
Factory for SourceWriteUtil.
+
+

+T

+
+
to(String) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(int) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(long) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(boolean) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(double) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(float) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(short) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(char) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(Class<?>) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(E) - +Method in interface com.google.gwt.inject.client.binder.GinConstantBindingBuilder +
Binds constant to the given value +
to(Class<I>) - +Method in interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder +
See the EDSL examples at GinBinder. +
to(TypeLiteral<I>) - +Method in interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder +
See the EDSL examples at GinBinder. +
to(Key<I>) - +Method in interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder +
See the EDSL examples at GinBinder. +
toProvider(Class<I>) - +Method in interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder +
See the EDSL examples at GinBinder. +
toProvider(Key<I>) - +Method in interface com.google.gwt.inject.client.binder.GinLinkedBindingBuilder +
See the EDSL examples at GinBinder. +
toString() - +Method in class com.google.gwt.inject.rebind.binding.Context +
  +
toString() - +Method in class com.google.gwt.inject.rebind.binding.Dependency +
  +
toString() - +Method in class com.google.gwt.inject.rebind.GinjectorBindings +
  +
toString() - +Method in class com.google.gwt.inject.rebind.output.FragmentPackageName +
  +
toString() - +Method in class com.google.gwt.inject.rebind.reflect.FieldLiteral +
Returns the field's declaring type and name in the format used in javadoc, + e.g. +
toString() - +Method in class com.google.gwt.inject.rebind.reflect.MethodLiteral +
Returns the method's declaring type and name in the format used in + javadoc, e.g. +
TypeLiterals - Class in com.google.gwt.inject.client.multibindings
Utilities for creating TypeLiteral instances.
+
+

+U

+
+
UnresolvedBindingValidator - Class in com.google.gwt.inject.rebind.resolution
Finds and reports errors in the dependency information.
UnresolvedBindingValidator(EagerCycleFinder, ErrorManager, TreeLogger) - +Constructor for class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator +
  +
UnresolvedBindingValidator.Factory - Interface in com.google.gwt.inject.rebind.resolution
 
UnresolvedBindingValidator.InvalidKeys - Class in com.google.gwt.inject.rebind.resolution
Container for information about invalid keys.
update() - +Method in class com.google.gwt.inject.rebind.resolution.DependencyGraph.GraphPruner +
  +
+
+

+V

+
+
validate(DependencyExplorer.DependencyExplorerOutput, UnresolvedBindingValidator.InvalidKeys) - +Method in class com.google.gwt.inject.rebind.resolution.UnresolvedBindingValidator +
Returns true if the graph is valid (does not have any cycles or problems creating required + keys). +
valueOf(String) - +Static method in enum com.google.gwt.inject.rebind.GinScope +
Returns the enum constant of this type with the specified name. +
values() - +Static method in enum com.google.gwt.inject.rebind.GinScope +
Returns an array containing the constants of this enum type, in +the order they are declared. +
visit(ProviderKeyBinding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visit(ProviderInstanceBinding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visit(LinkedKeyBinding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visit(InstanceBinding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visit(UntargettedBinding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visit(Binding<T>) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visit(Message) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visit(ProviderLookup<T>) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visit(StaticInjectionRequest) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visit(PrivateElements) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visitEagerSingleton() - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visitElementsAndReportErrors(List<Element>) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visitNoScoping() - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visitOther(Binding<? extends T>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visitOther(Element) - +Method in class com.google.gwt.inject.rebind.GuiceElementVisitor +
  +
visitScope(Scope) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
visitScopeAnnotation(Class<? extends Annotation>) - +Method in class com.google.gwt.inject.rebind.GuiceBindingVisitor +
  +
+
+

+W

+
+
withMethodName(String) - +Method in class com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder +
Sets the method name used in the signature. +
withModifiers(int) - +Method in class com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder +
Sets the modifiers used in the method signature. +
withOnlyRequiredEdges(boolean) - +Method in class com.google.gwt.inject.rebind.resolution.PathFinder +
  +
withParameterNames(String[]) - +Method in class com.google.gwt.inject.rebind.reflect.ReflectUtil.SignatureBuilder +
Sets the names to use for the method's parameters. +
write(String, String, PrintWriter, GinjectorBindings) - +Method in class com.google.gwt.inject.rebind.output.GinjectorImplOutputter +
Writes the implementation of the Ginjector interface associated + with the given GinjectorBindings object, if any, along with all the + injector classes and fragment classes required by the implementation. +
writeBindingContext(SourceWriter, Context) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Writes out a binding context, followed by a newline. +
writeBindingContextJavadoc(SourceWriter, Context, String) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Write a Javadoc comment for a binding, including its context. +
writeBindingContextJavadoc(SourceWriter, Context, Key<?>) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Write the Javadoc for the binding of a particular key, showing the context + of the binding. +
writeMethod(SourceWriter, String, String) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Writes a method with the given signature and body to the source writer. +
writeMethod(InjectorMethod, SourceWriter, InjectorWriteContext) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Writes the given method to the given source writer. +
writeMethods(Iterable<InjectorMethod>, SourceWriter, InjectorWriteContext) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Writes the given methods to the given source writer. +
writeNativeMethod(SourceWriter, String, String) - +Method in class com.google.gwt.inject.rebind.util.SourceWriteUtil +
Writes a native method with the given signature and body to the source + writer. +
+
+A B C D E F G H I J L M N O P R S T U V W + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/index.html b/trunk/javadoc/index.html new file mode 100644 index 0000000..007ae31 --- /dev/null +++ b/trunk/javadoc/index.html @@ -0,0 +1,73 @@ + + + + + + +Generated Documentation (Untitled) + + + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/trunk/javadoc/overview-frame.html b/trunk/javadoc/overview-frame.html new file mode 100644 index 0000000..ffd4724 --- /dev/null +++ b/trunk/javadoc/overview-frame.html @@ -0,0 +1,62 @@ + + + + + + +Overview List + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+com.google.gwt.inject.client +
+com.google.gwt.inject.client.assistedinject +
+com.google.gwt.inject.client.binder +
+com.google.gwt.inject.client.multibindings +
+com.google.gwt.inject.rebind +
+com.google.gwt.inject.rebind.adapter +
+com.google.gwt.inject.rebind.binding +
+com.google.gwt.inject.rebind.output +
+com.google.gwt.inject.rebind.reflect +
+com.google.gwt.inject.rebind.resolution +
+com.google.gwt.inject.rebind.util +
+

+ +

+  + + diff --git a/trunk/javadoc/overview-summary.html b/trunk/javadoc/overview-summary.html new file mode 100644 index 0000000..27dc906 --- /dev/null +++ b/trunk/javadoc/overview-summary.html @@ -0,0 +1,189 @@ + + + + + + +Overview + + + + + + + + + + + + +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages
com.google.gwt.inject.client 
com.google.gwt.inject.client.assistedinject 
com.google.gwt.inject.client.binder 
com.google.gwt.inject.client.multibindings 
com.google.gwt.inject.rebind 
com.google.gwt.inject.rebind.adapter 
com.google.gwt.inject.rebind.binding 
com.google.gwt.inject.rebind.output 
com.google.gwt.inject.rebind.reflect 
com.google.gwt.inject.rebind.resolution 
com.google.gwt.inject.rebind.util 
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/overview-tree.html b/trunk/javadoc/overview-tree.html new file mode 100644 index 0000000..5b9cc08 --- /dev/null +++ b/trunk/javadoc/overview-tree.html @@ -0,0 +1,225 @@ + + + + + + +Class Hierarchy + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
com.google.gwt.inject.client, com.google.gwt.inject.client.assistedinject, com.google.gwt.inject.client.binder, com.google.gwt.inject.client.multibindings, com.google.gwt.inject.rebind, com.google.gwt.inject.rebind.adapter, com.google.gwt.inject.rebind.binding, com.google.gwt.inject.rebind.output, com.google.gwt.inject.rebind.reflect, com.google.gwt.inject.rebind.resolution, com.google.gwt.inject.rebind.util
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +

+Annotation Type Hierarchy +

+ +

+Enum Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/package-list b/trunk/javadoc/package-list new file mode 100644 index 0000000..4ca9b91 --- /dev/null +++ b/trunk/javadoc/package-list @@ -0,0 +1,11 @@ +com.google.gwt.inject.client +com.google.gwt.inject.client.assistedinject +com.google.gwt.inject.client.binder +com.google.gwt.inject.client.multibindings +com.google.gwt.inject.rebind +com.google.gwt.inject.rebind.adapter +com.google.gwt.inject.rebind.binding +com.google.gwt.inject.rebind.output +com.google.gwt.inject.rebind.reflect +com.google.gwt.inject.rebind.resolution +com.google.gwt.inject.rebind.util diff --git a/trunk/javadoc/resources/inherit.gif b/trunk/javadoc/resources/inherit.gif new file mode 100644 index 0000000000000000000000000000000000000000..c814867a13deb0ca7ea2156c6ca1d5a03372af7e GIT binary patch literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/trunk/javadoc/serialized-form.html b/trunk/javadoc/serialized-form.html new file mode 100644 index 0000000..9ef9c6a --- /dev/null +++ b/trunk/javadoc/serialized-form.html @@ -0,0 +1,199 @@ + + + + + + +Serialized Form + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Serialized Form

+
+
+ + + + + +
+Package com.google.gwt.inject.client
+ +

+ + + + + +
+Class com.google.gwt.inject.client.CreationException extends java.lang.RuntimeException implements Serializable
+ +

+


+ + + + + +
+Package com.google.gwt.inject.rebind.reflect
+ +

+ + + + + +
+Class com.google.gwt.inject.rebind.reflect.NoSourceNameException extends java.lang.Exception implements Serializable
+ +

+


+ + + + + +
+Package com.google.gwt.inject.rebind.resolution
+ +

+ + + + + +
+Class com.google.gwt.inject.rebind.resolution.ImplicitBindingCreator.BindingCreationException extends java.lang.Exception implements Serializable
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/trunk/javadoc/stylesheet.css b/trunk/javadoc/stylesheet.css new file mode 100644 index 0000000..6ea9e51 --- /dev/null +++ b/trunk/javadoc/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF; color:#000000 } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ +.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} + diff --git a/trunk/lib/README b/trunk/lib/README new file mode 100644 index 0000000..52fd5c8 --- /dev/null +++ b/trunk/lib/README @@ -0,0 +1 @@ +This directory holds dependencies needed for Gin. \ No newline at end of file diff --git a/trunk/lib/aopalliance.jar b/trunk/lib/aopalliance.jar new file mode 100644 index 0000000000000000000000000000000000000000..578b1a0c359ef88a84461bdb91d9d0041afd54de GIT binary patch literal 4467 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 wuru3D*!yeh-fW(k*)t*xQcjuQ` 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

t$XEsw$DZ>ce$H7VXRbbg!VL&p}klkK> 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

Vt(!!Ze~}CJ2??i=+&=vb9LGQL0T1e2 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ȇgHE2bH}F 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


e8V0ChpMXLVDWvdcu~Qd5KEP+B(| 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 literal 0 HcmV?d00001 diff --git a/trunk/lib/guice-assistedinject-3.0.jar b/trunk/lib/guice-assistedinject-3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6f61ff44acc3f67bb13b2348e5cbe0ee2dfc87d3 GIT binary patch literal 36423 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

wx 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 QKp+3C)c7P^g9_gM57H-)%K!iX literal 0 HcmV?d00001 diff --git a/trunk/lib/test/cglib.jar b/trunk/lib/test/cglib.jar new file mode 100644 index 0000000000000000000000000000000000000000..ed07cb507fa6b3f0a753f73a81726b823a81d0ad GIT binary patch literal 322362 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�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 !v5f~Njsz=9ISyk#ZI3N&x1LLr`5$1sp~8xv z3{Bt1FnpLB-&!D}8?OhD%4Czur|d?RCrmkGJ--h)l)3Q-tbFln*Z+WiQldA39?oE^ zleOV0GQ%1V(zTtB^;eQ6bFuu8rx=`7WlP`Fwl~1Btf1USKnF046Jngv{IOWOJ|ktk z(9QX!z??EIhevCH58WHbU!dtpMZr7oi{ENIsULmaIhm|h1nMr`Se}_OW9G` z8W)>x!Qhhur6d$u(Vy_N4SJ>RPR2v4`?;V?^H`0g2r3BU`YqM^l86hhLedO=2DTF+ z;`9THVs}q@Di0dcf>Az_wSL3n@QZMiKy|kZaAbLJH zZa0T@0SlWbW^Mt{y5iwe6~-ph-!$FowBv)Fnzekl zU|^&u`UedA3?(>juBlS3ho!{i&ey7VVGZMySiUvFLLH{;jb!NH4_rA05oX?j#PRhZ^xbW8nxJ%bD4%W<{lZ1DVxKp<~j?SB(7~(fuqS4*Q z9URDCWL`1+AD|;iYUv!GpCKyKS3h<3txw&qZ^Q2$reETEoSib}{*bk>!-KmosbBB7 zPrYmX+;gc|xa{1G@(sB5e)CR!v*X?9Mfln;dwRLK>;ZSz{33VjhpK^b%hPC{tjV+= zvx#Wxl7qt18BJekPm@!O8NVAfGazZ2VrR}fhQ>WEWlWJi z1F>jxfHSqQEK5K4(BfWeo}*_u4K+os(mX&^T-3?U21WzZ)XROSL@i1YYSa*`HjgO0 zqPh^E#`G2DY1`1)jO&*D1kL?`TgM|94^?&56@O#ZRMr;_Doj1;-4d~z&v_REN+_%> zNI!bH^7li$EvoEFpdI+>5&*^xe6U`xua;?11Yig7!PQ=Kait?%U2BT`5QT|amhAJ_ z#><_kb7^K8S1r|_pebx{0gE1V*+jX#((LcrdP}yi%$Ve#?FzJ?^DH5aKnbNduNp^C zqCPDFR!KYn$}EJmD>tWtG7Iwx3r{NWKcIXhBYi>zmwXMLHy%&E#DkUmac;!hsv5cL zcsDn7XoN{QDh{)ToHc>j#ntKG0M)*?>cUfB?re>^KX6`eRzelIuXH9OFfb@i#n^L1 zDCt5QM$zOUqI75*yRH2ROqV=9V@;PsYxdLC=|%eR;67s_chwAj3n9eEL7RbEVS8*&Z^!TbDi#Da}#@QCY`OJiEq8KX8s*kh5&gfhUC%* zea7TkuT^=P-5X`)5o8s7-S5(^m-rjBMDQ^MQ4&cbYtn`5N?viH3k|$Ng~JQj#Cvxa zyb{J4$FV#WkFcbniypgZlNoXT0`f7+(T}VZei?@8-s38U3*@EmwRu4czY0mfQCTi*TEP_w+MEq zr_k>xS7`i%4-qYpAbZdTCC`)wDbHBDe78=3_C_{?m}f8p`S*ARl4|5X;Z}ifL)>+u zla;-aFOA1|vRM51xtw!9Hi4Q2ddji~ zi5G!d7FkLI-`U%Owv&asUM)?8m$yvjzJUMpO+h{%CPf!e7uE%^RN?*OVJ%~4WMKX8 zb2>;~R(e1lF>|F*7N?-;~2j^6e6Z(OS;rQ|$rCBqF3pzh5yTl8*}urebwOd4W_^e0dUy93}tv*qTs6uJpB2_I2>4MO)qz=ibGa-2w>fYsDfO` zYPw((^PJ(!G5ST=9UAM*)eC8n(~!NWvo}rpH)G*6-A@7mDBJ*`km-MJtdcW8fB4_f zOj4A!0;mrA6s)QiQZ?;2%VpIxBl;U@QuC!M;(9`%!jf^eKF2R;uC3!Fs>HGleQ59| z3PHU9y(knlWC&0mL1oah3HzN@XbFzUS?cxd z4HELRsI^_uQ|@M3EKp#g$iW%dL6=)mGc6`CX}XU^2rmi|ty0|GpW;`DSzx$EssAj_ z*9>29pj%cw-p6hq%YnhUwWEi`NwS@>*T@>DUC|4|ZUbE4tGb1UqYr1oi!f=b_kt;5 zloaGHNyjwGi=+ktwgv6|zA|bM%}x52^0WBO^9`AP4=axg+Keq!AnkN;X53Ia|J(%| z7yB*(&)1dt25x~DBK_>1SICbO5(t{lZXopa-x){Y}+EM-iP6ep)S#aVrwDb zu|r)qIZUNs0aq9G47Z>;idv(j<$&znGy@i>6H97DtOnc_rD0&A8JLxxlZ!8YJ}*%0 zoLcLNbF`D`qc_s9>Ux8ec5vR2dTHJd>Jx`eN7|aR2WxJ+T1qdo3X0`?R$w?rzvv4~ zqfN9ua0avML1?b)-Trs=1kU5vSZEgOs1MWoOwmhB~e||l#s#l?v zi&EYt?#4z{p!R6_9np3WC={$-Z#*%o@es2#On22|GZb%8z`vk}fTdFnvrKf`$AfQD z}kPEco4k2PB7E+UmJ&QZKF5*YbLt2HYaa7jQ!e;3c01~ zk}sqXGyc>C3DKGWZf34FQ|;G}V#A3xnnW#c!t&b`T8fUAO9iVT@0nE4T}}wAgACWF zK?3Js_^y6ZDETAGWP#3OpM=pQk$mj6TTA!uuwH{{95CpXN|(wyQ@(DX47$9N9pjT= zWaMbArczUGaOVliTAPbZze;|2M%mFtQ)H0?t+=xd`h(4|s+dLF)tQF#&VYlf*j}o= zz=khFJiWldKL3*dEZm9 z!vhG*gWDMkCqYyD=M5D;=I*10j`sU;O=job6q@yiM$j!EzZcX}pF@U;Ks)FV+rhV{ zjcMjQS8nr#T-Qu>NJ2lpi$OYY&*%~@iEp?#TtBoNezicH?jz#&8633X4=q?nn4ykA zfW!+wkn@r`ZP4!9`NYUcGiWFXVsN>zN<`^l_osn!h_Xc73$bM<0<0f zP8C~@;MHc8D|22K(-9kfr<*i`L9sv4iB)V*euD_n>njILcx;1sN$?Te+AMXVEk*43 z$^}moX!`_rHd_TPU%Dj-MhiqNRS!%`d3Pm`_Zw4h;)yXQLl0pkPA?p>f_N~M_dDS* zE}a+!l1ru=ZZ%LpjS|vPdMxCIn=?sMVRi)j^zPcZJ74Fwqgp%F5Xo4d5P!+V3EIA2 z+{zqKee+973^L~+`ti((+OG%44 z=uqow7T(JJi5N;>P;opuom!qSRYkJVcdSU2N6R>x8I`>i_)EUZ9yPd|}exq%WNA2;T zcA=#5L$z9sMUe`pF;j2b?)-Fq%WUi+xTLpuLIY4W#rY0QbNtZUQTToRas?8Urv$u4 z4Tq|SZh~^qb(Sv#UF}KkIdx6DqJIZ(6EX>&ohv_bM{1$ZJBueH9l)Wr+@(3LA_)9+@}SHC;ZS z4^aLV<(YWMHrR5gk(YrA`b}^;;fHFG{C4#to)>FaJ4*4khDr%oC5^NX!0yAL#1w|G zlLbZ9wAWhmnRt7#xDY~88ook|k7U(%s+%o4!rROkpaDZl!&Iqjq%%+-!xL1e~rv|9te5Z}|bDz;t9-E)R^Il!% zSw>|aXr%s5mC+^B5h$*^m1wa^s06~Z}dKd!{w&S-~V>U`qRq=R{9ck6cmLd=XYB-(1FxOCNKiX^X8r+uRUHH71G4?T} zWKAV@#tPEnx3B)zbfm~L%wf!!ay;Xyef$>}Ef1b@D52(4MQ0s_x=ocH#Tw|cW&YJY zdCu%b21yC_kLJYd(eVn;Hrz-rDRDN;fm9pGQ_28p#&SZu0Rukpr}@x*I)qs+9#qE| zh8<09P}j1Ws%PzKSknO1HfldS@Og9&3{Z6U!$b@pV%Vc~;?*ZUbYQ&%hQ%464;>Ry+EKN9&2LI`0vxHbZX2z)v{w@F`D*rC`yW zyR&XuUGC~$R1oKYw_!6Db%oCmkSz9`Lzrcm?y&3ZHUORU4RNq&^4Mr-hQTOu4o;p) z?4vI%i~oo)jLIyT~i`aE!*3h$Wf)jKM`V zafes%>0+1C0Zd6M|4;xk&!>YREgleSDIkM!Uzf--9q$EYF-|=qIS22l*M4b;2rn6M zCvb?yB=`ITD@&l>T%buA2wd0u&(ODEE5hFk0I(z={IUICfUM?dU=JW@CHXh3|N0Nm zQ1n+gl;cGJ5=6~BKIb6WLoi2WQLRao09Bv>BwE={j%x{9qVKFh-+zmT@kZs|gg+h0 zk}*5|)VBNPS&H(So>i-rmrtS#lZ1`V?Aqbnz;b7=zwr4?<_#qfIINppC{Y+a=-p*@ z2z&rFg;^B_>(`o}zHfK};5`hm z>YEeoMU}d2QB#$++&mqlUEy6#SLPiZn{mCET+K~yn#+roj;Z!E0lR7yXI+}D$+EZV8o45n4TZ`K4vT+tIiGPR}h?qWJ zC4#5lCHt6x19}Y?f=%3W7#quot)Qp(Xt5MXu<~_>?6HEk6Z3j!@v1#C2@A3f?cK*n zWY4$T;=CKyIl(StH<0=~g0t1Yq*{9klG@Z}T|@JwdEpxOID=KlawATX<^uSr;#*UWw(~G1w<~pcMO|hrNsPA^dmf4DC zy>kmrKeeV}Wwq=O7`ej;%O;3sO@Fhx@M1e#e~o2~{VICZu9*hui|FPIqM5)WKK8O9 zp5lN&qHk;mP-x}cL6nqppRX#MLB?Yu7!Vz?c6xYboVRU z1L7Nx!T0ZOL?1zL2-sEA#x3}=W$G090jKwUPZjh$=JUhrBG4>$FCh`o%l~H~yBAvZ zG*WoTrV=UUx7-U?nK51-E05HheP(0+AEn6A0s#slE>_Kft&tauRyAC&=qZpJ{`blP zl3B5=x{PVeB{iY7pD99MV!}}vXRjl5K9!$|F$l0cK`-R-loi2Sd(5dZh{V!xODVD0 zd0G!aS^mhz2p@(szs-8som);R@vXiP{xecP`w71`0HP5oAX5KxtGJwjjfJh5yq&d$ z(O+@dC%OYrGei`_p?P%C-x}{hj^gWWVrJ`OMue@d0<{99$@52E#(S-&l2J$}RA- zxs_vx+Ne#~JU7S^yGmXZG;m9lp2V-xvGH$I;sy&49peC_sQ^aP{9`EoVQ6V$xjkbnIUl{ zyJ6dr7DXs7inpU(qVJ?FWTZw( zYFrZ`8nhnLs|Me@42YPc=w96}V3R&PndA+vr&b~Aj*Qv#)3lwLy_F%$4Na0s_umI) zf0?g!RE`omLk5ujkyX{k5;u>r>UJxx#E8hJYU(r-6B2>}Ic{+~dQr@&GP1gu3a;3NFUHIa8TF}5)J--T4}N4ph1aBy&5a5*vX)6PZY zk3E);gNMvXl8=M;eC3Z{`HP8@2ZQm-uHa%~;C_{Z^&%gcgPqPkUxk&62gt7AreffH ztwg-BJj5X4mKug~l(93T1m(K{)gzkB;cv@tBB1Sk+PQSwc5vX8m0{4f9DNa znqrEl3P94o+{JHv+{5%D$_mjVm0XCOR)rB4Eyye~NjIqj*f->UMy{oXKJtMgX>#*5 zFlAaV5v_;05{3s(_rMHfk}gK?3@~aDI=?l%Ob9kZupUcHn%9yw=6qhO(TZb~NQOe^ zz3el^!R15}qrP$KeH2wVJsWwp*9f}EsJX5 zyAC*og;5eRS~TXZ298|1w#zk4k})rk`Nq{yL1E*2v)&ejy0yg8B%KUwb~s&enq6(K z?X0Nr1GTyj$){|(dtQJUkOb=@QeS1=H~GC*kpLR&b)XprW8SFg zd2=6nN;dQ5WyYl}T3bWgrRr}jenBqapV7@6wbdT@Gd7wQ|9fh}Ov6$sPh&8^&aZ}(|6UZO=Y=L~TSRMPm_250a z1ZViPUk3eLC&4z?Rep-R&_yM)UJLiEioQu{(iF23p=LfLI5??U@d(#6mI`6NBiv5tnRML#O@hEFn+wr(*-N8(Fq$V52=SzJUdz- zQP(HZIjHB;E{B}$max3qZ$x4KQ><80drdMIT(eRFzzC;`C6!-;-#uq=a)}aSA*Bd& zzyJP%4-}j*$)}@*1DoGHGJhltY?*xYMoOk8YW2+0<8-T4@F7Vq1dv$sD`5lN)J5Ph zgH)f@X3p*)jr$?~)46TX?lM2i&({?AT`fevY|mZ+WSxE!4?H!@yzTJ z9SgN?t5&)sT$p=>AoBSR&nP1yPX)85cZ8x{^a01ly!|)dE z?=$3W@yvYnZhp1ul@tZz*Qu#jP^&V7nDjj;=H`|vF~d#I17Me#0DmBU^fR&4Ljzn#Gda$%FPG9#S5v$YQfLI#3NJGDtcLB@g7?-hyjdGUEi@S{CvPmZhPg z;RC{RZdlYwKn>X^#eUi)bdmJ=Kz16ZQ}?yE)AZWTPv3XY+FvTclqu586ltz&NTLgW zylwdoNkca7(op3X8Y%-A3-=TVNp|8%Iwoe5$F8tXM1LY*Vlu=Es9~_cVoBs{UD9DO%oez&V67i^ z6BI3A%x2dxL9vW$XQKxjFeTV%aDrsbs-!~&&zU03GfGww?!nn|C(~~_O7t>_T$ts~ zN=B+NZbeaQ8%eaFSMGBS7?O$I@{jGerVYXwTh?sxoRcQ8>N#a6cW6MJWt3S0iyK(?z@Wz1(IreZn3fw^t%22>?OU$&Jc?&ut+;O)71G`p{YhLwlw&b&8VQ)1f$RkR&J65col>g#7W>zU~Wt5RGJG6+t@E?|&=l$BX#^ zV*}7_3aI1!56+sul+J^cCTsy`4R1n9)?krry5jl`Bc=Ljj~o3 zT*M1^AO_ti&D51AJ_oG^Z)w28vzelo9Xzld*_YI#%!{Aom)-~DnS#8#w%lC2=&%)C z(!e}COc2hu{&^&Vc|-Ea(T8^p%!=odU<-%a93JApdR*BkmyDhB$Dvc))0Qs5upV8^ zi}FK4U|^fG^8Siq@Y2|egB4a31w>uo!h~GTLcvknE>rnDNp+#%4s%wXX0~hCd9MjZ zNF=jh&>gxYz!_Tpx|%E8-;W$In87Gp2WDd8mn>h79&v9Y6bVDP)d$l z9yF@jpe)Sy4Zsj?C@9aPe*RvKhU{;h(1GLPVuA=T-Q<7F7e?Y_x$f`&DUh_{)jhOD z2#`~991_4TuRV6(yF4%#`H+;O^7)CZzSl$yQg!Y@6uN*+sL4_Q>@)pR)Q(F`;S(+p z=Si9G@EIXrs1hW0%jV%#CN%IIEo$Txo?gc~RA0wCG>*YFGgsq}DT}!|NOeh870+X! zRNqpYY?;<5tv&Y~yzUXKok{qUtizYo~mBsMx6RGb7dumR(*y;zyi-^OIqGOO17m4+3q zi?&xwbU|b`xqi63 zQvvtM!%MPiz8)lp&`6zTT2O(6Qo23aG^MwX^|3Awf_IFTW!(|Hsw*qUJuq;55(DP- zQ`b-7A7{yvJY5L6PMYf8CVj?@cov$gwl9Rp8F6{-@b>9bS6W>;jbV_rl`7Z6cn~dk zg`l}#tg$w?)@ZA$E^DrevM3K@$e)m3yNGcK;TH5#J#S|{S6i;K(_W~r@|AV6F@iB( z!4Ubt^NAC%wllFJ!5zpK;86a4bqgk>&ena^Up$Pqp=ovg|1tJWQKB_nl4aYvW!tuG z+qQYjwr$%sZ`rnO+;Y`aPxs7P|2O^5%tJn%^N@LV?##1dN5ocL(QQM@JhWxFnn#NS z5#-`$?GysZgw>jiah+0aNuy~=vuObh5?2G2B0G~h8nk|;*D@PFycHqr>26dbZlg+Q zt7}{cp6Zi;MS%!A3T*sdAPd$qk4UI`#c_U z@%%Re4?V@0*?q>9-RwF=Ij6^5u9zCQl7h%%OyGoGhC02|BrTbnIrO-rJg7^0A!LFw zDtbY2Q4lLWpnvx|&`b-ke(=WX-p@!jvCc@j*SoR`ZyXi@v}I#+~& z6+j71Z=T;rn|tFPWjU&*3cpzRU!!UqW+`#F?dJ}Pw(+jQKs@&#N+KpL%Y||sY9q~? zGqK9U&$3`baK|2LY%7Xc-WbfEMDnC3@e~A(^P7<}pv|)rBhs|7SD2UWw05>T6#cA< z_&4~mbr1}Zm2}1+go#AXAS9b36*JQ#r2WyN-^odaS{T<1-|o^F?+LPJQ6XG11am9| zO4=s%y%z|@UD1x(#0#&a(W7l`nHplJ{xY6B2hs?R|M+<5kBbVl=bpYc#FR?l^8dbFbY7R1j z-RqGr4PSaHcQ9p0K-g_`jt%`P?+9M2aHiv$On6+W9pR1=LB>znHSSF1( zf^j~6pJZf5e=E=T3$deiK>pWW4lc?D41K*=6hyUwFi0+1Cm(Qva{#K3j!we3oD})H z5SQT=?i(o&<>Aa3e#P|3gRN(ZEk3`~QAzS5EVz6&rmbgg z0rH3K7eLt;XE#Cow-kJIDdhf>Ug4I6MF`F#+QORA>Htb&?^r?WSu5`N^6Tfc47f^o z*dks^Lu@>@PWUy{`rkKB+UKh{ZNum{SO0-6O#W^xP-TPZ5=WxZ7BT*lSc!Q01VoZ! zhZbP`Rxt(=It_yFYtbSgy)xjclcXr9pE^F~g;cVxIvD%eu>j z<;I-S`~j_JE=P64Y%AvP*_Nz)iSJ=F9LyF;SFvf63O?j(vpD260`ECBHe*VSsUb7k ziXT@AKo~D2OU2Ra$jh)2mP$w`FQB>g7&u>MEPh87`nI*fHE*;E^=Scq(NBg4H>)vI z9Q&M64?%hfs1v4C`-rMBGs<5zjz;EcZ9=Gk7X;Pi-Ojhn`o+!;8+Av<88=c<4nRs zVaI^og+lOXNgPH)NSiCDkNH_9%;1UAubaY$dr&HM4kU2)q3s_|SlL?4TW8^_o)|b# zJuG2Cf&|bu1lj&vy4dh1Xz=-aT=+p!jHIlhOx7m&*+f-nV$mtZ!%=)kg$FZrP*iH{ z%pvws9p1lw`>YS1JUDWgqK|$G1tK%ZxPGJh^yn`RK0VSm;1{lBs%|3p`9ofjvl8gn z>#nlD3JR$1LGnGG)^A}!KEDywcfZjhe1Eh_w7mN-C*R$SnYxV~Pf?&@{T@!9B(C(H zyJq#B?4Po=jepc+r?diZ-QN_daQUrQFi%B}SsiiUvUz;m+{H^0SkA*{dPhppSd_Vn z0y%_~V!e`TtqNXA)-`dnS4}?dj;u#0B_F_HXrOYzkQ{|c;E=R8u}a20Yb1+3%nKJH zt7&JpKN)3i=Au(>3XD`aZ1f6hMh(>2|EE(#%X|*mt>U!;xrKptUe!;j(jpWTbKm(= z#wk$>qddU-ygw4fZ5CDig8Yqb;>Ijy(3%78#Q6@sB-H!B{w}&w$W^1!V;6wu$p9 zYJ*zvH5{1~N1mQ=2`T{5N_kgoF^x%6aiWalKC$S)oNjN2qft|-MhJd%evSQlbjq|v z(Lv2aB;9a`+MU>DS8i>L8)i8O9B*FWk-bzu4wKY$Ul!g`tjS%oceXPXU7p?U6`TdS zsj)I03)fbVI}|zW1EVCJk1YKtbESo}Y2Fl~w3OZca*SoicS+^KUSTzSiv0BRtr4aye7NqUBamC)dU9b854hoLWVLH+35-efx@ z{a++o#^KJui9CdC;qR{#5Pm=2mcL{$Py+b_P$W;iGSr?gykmE>KnlX)albN@UEe+Y zEDRm+HK|(zd*mGg(i20|O5UH#Rt3K9Z|+=%0=yzmu-BlIhGoAv+guA);a{WQtB=yJ z0addc=ur6FEyqzl{v23LmQ@&j{W9lym0-&)Lg!8rO9b)AxtFJvNoqAKS`jFA_IN{W z-D_j2QhsIrp}SA-2nTG_ZrwwvOUcSsZqs7&wY)4n35EpDmF={$g>nJw0QQUjR=_&^ z{P^i!4x?Z(%kk1l-T*YW+;i2>AG$3?q}nsXXaDg0V!|W%h_K9HH%8w25}jUiml&zQ zLR0!cBKVsbELXu7R=%6J_m~vCP|o#fhy{#N1h|X|`p*kZ{xR?uoPi>Kviv&S|AI@!(5tIY2SndlGJg^2j;8?g-BmhgrX zyRE~0w?j*c(~VYmKytTrjj;>CG&dKC5KAwV(Rcplf=%w*+|7@i#fX$`Uj3PNOxXoY z+>+i~y~b0Uugte{$r<+c3g|Lemy#kyso2^Tp<1cGJ2T&4FzIwk$v)?wI&axl#DpS! z@1A&bQD2ay^M&=Bt2m3yt)i4;m+5rA$NuA`8C7c!$0`gexqGp~gH=g~Kq=G3zXYDR zD$*d;lWHsQrwYGA^boHq_*+sAN~j&e zY*U727Cpbiz~CtGI7s(r@9ohz2dm@zY5+K;1sC8V`KpF&wPcWnMvD^ zO8DomJ$snuWcgC@VIAsQlaSWgJXTPg8hf*f`yxkkdovo@R#a7`JS-G*FWT^RRi~Q zkpZq`!%zdUrR0-f9Z0TlfJ0+}WmFtJE3d)9q6ZX1wqhr4uq*XKg46U08t$*{a z`&xKRpA>ELu_n?kT;8#)`lgY_Kemm)Cg=oGZS!hhQ7pqQ966_H(lu2t8A-82-8kHU zx$w3%zMw8~N_Ih8hzN377Qh9cVyj{T#M%mFgVyHNSsRl);Xio4Gc9~TLaSubsG=~a zCruol1_PaQ+4bRR!v*QZ?mH6|w?}^2gn{IRqix;oy9uOWnaf%+U?WrA%9-`1ZTk4Q zH+qzR$NyDPkETvn+2YYSac`Yg({i$QL;6lYIo|5|VC~_$g)eqCfn_t^2z{3S>>FoB z)s=gXB9fnuzvG#NYvdX5cV(4kDTZ6D=kw*0nP(@4%_`@B+()L6%%U`{<;pJ*zWck; z+iN~iD}Rf_uMyDPuoMDr2!ESc)K*UYz;z2N?NfN5V`U+(;TokQB4&Oi-;SV(FN6a- z*x+62%%Oqmou%(QD9sU{mUPxe-GR&eW~jzZ0douXwga5CD^+#w#GJ*u1&#MSZzgae zu>;)lPx`I{WJ1(A+$>kWVp)yz7F_zr7T zu32~P^mwb89cJE*t>WLW>=i=g7H%syGMrY<8BchbsL_LR7AS zX(9e<=RC<$o|du!cHM}_UDi4rb;`!`?6|xjs5~un-obM{!HbxdKj@TG$IkWty%%`< zgmgc|db#Jtc$#=*{EUNhWSudg8|g5*7OTjLZ7LI62TpqhCY%td#j_kIPiExza1<;bbPCfn1^zm z-8sF12J6^{C#u4DLDl8@<_4RAaEX9g>uOe6G(8S4ys9*@6Y80L_b^KYwGIL zugh1e+b_a$#p2#($5h|b}E zgu?<{nbZ?dlKu!B#h}{(6@a>{uKdW_lrqu&cO&sAfXBNCJT*g8Czc@H?d~t|E$(_> z3d|m97KB#HVJFlrf^oy%H3Z_Z1mf{wb$Y_L8N%ub8X%<-L4>;F$jZA%R0h(l`eZF` zbM7Gf#@x_rfz_#Zjz$-{)-*WB9-(b5kkjh%6E47;_N4&oE}ejee#5Cw9?5Wqiu@@h zr7<3xWnKD(iaij+U9hxn3TB2st^_P4H-?kg^JH1a4RG(vOl#OUpgP=?GL%dHi&_<~6}Y%& zH}-*M7K#Vf7pSIH5w`lkmY58CoK;{*t^(P^3P{^l24tk#Q=i;Q1z0@{9ViriPg#xV z1)XSgrVy(pKe;O?!=1uqzb=?Q#(~CIOMs05%Hj*fcb$B~m<+Je&`#==B12tQlk~|u z8a2;X3wrvKp`*UrInEAUzNyr2U$83E?;8|~Bq|bl9<6dednwD05Q$sngzI)GL72=| zblnb+yJ?+wg)9Dd3SFxX~B$4`Wq%f zJ;4Xe4zxl?u-%(NcpJ?4p?_(^0gB5UF-NKmdf=HX=!Rk5Q$c(4r{Ad>l4jVg-j;Gk z&P61WAS$Ndnt26n5~Q&k&_3-SSAnp3V1)s9K0d&PRxJFD09bG)f{Qugh6s~P$ylu$ z8G?x;BTt!kM;t#Il{17*Lw`k|2Z>iH0$-w9ojSTwv6XIOe0*EW^E0L62t_mb7_#I0 zOYOv*;g(-$e6@u2nyA_H?q13=`JIYipagfn+21PM7w;g&{{s1L)NQ+>c86(9%v&U2 zk$RO9Q2jOw^K~a%E8%hULsYfXz?G;E0qZ8IGTu4!{LSid0kHe7IrJuGfwT?%;(7TD z)oXd#3dg+vYF#vhS4iy8onz78!B>^s88Mkus$Nh&-t74c06 z^A#CY89-h8Ox`=qJk%=t1Nz6 z4q#H?t8|m9g3U!RZmH(j7f^_Wne?eFnk%}jN}lJ+VQ37}{aIrCAW{5^EN(ql(9$Q$1jv3^z&TH(~Rztfjf+gY0ERWWdeiG1U^Ni`}fw|Rt$eut@0 zBk7JKv)4MyT-8f<$?_mwq|_F`R;9u*7h#Cx+xiGfOQ z%P6zD@mnZX2Yn`R63oJy9=5S8|ItOa|A znq^C@rd)vC9>99X*nzR+%9Yh4G7x0F zuF7pTkPf#sd_E$ZqcP%?_4UE`uRI#!iWHUL9~xD_Pkoc_-_WT3gA^%aXKZ0=VdD4? zI$(7CjO>rDdZbrklha`{E(9r*l*WDnkK(sqo-QSUNKi`vW#~5RG_ke4k;Q@ip@2Ie zt#%xL8ILm0b3TF*vH+@bd1!X_tLaB(`crP_k9NtqPRM+k{qKnpUs{moDR{iWcU&pX z5cr&UEK4R`h}aL5y@4-iQ6Za*SFtwq%`H7{Z4B9b64%S?B~bPqxF%r_@`t-<=_81r zXJA5yXW<{#BCsU*Mn1cCOFg*5Y<|;YBEUvw`__BpD2;6qe9+* zKcgnB&{qb=fTrHe%L3t9gK}1(xdG7j0)dejS_{4%5m{oF-^W1I3mlZ;jzklggQ#t( zOQd0?Yv8&-v7f|70-oz*|gC=`f)N9k0uFtasqc5(b) z+IVFhr-lDe8^{uhDfF>05bRAzXnqhN3jhciiI0NMHpwcAV}ZFVUSexS5n^hX?k1PY zehX~i&8BiEVTxm<`Tq^a{EafGD{(;FqFn;7`(vIkz1H2ilFQrc1Fw&S4MRqAZ5d5d zt<4fGQ*F(qt;JN4a?SdS)}LVr??TRHYO%VarQZbgs8em;x0S?&wML~P(f2} z&oO6+3e9{glwA_$TMc%~-ZXs?Q?^ESJhck?lrbC1qY=L-e3H=ciw05*y?BVq-i&Ii zI7MTUjv~SzHpUpje)=AGbw(N8r74cm_08iHuM3Uz6`jErVi*P-JF*-*TN?+l0SC-M z!FIdgH>qMH31D3c8)ISzSpmGF-@RP3XAKeHS%tZi1$QaPq^H4gsoTGL$M*p5M7Vi|8;zc&?yN7%-$2f( z-UTxiF=IPJiW}M7(-dP`yIu;hwPpaSk=ZTR`@gof z2;L)8m)`%uOc}(Xym|jQx%GZ{SA_rV>8)&G>mg|2tYqT+pUi=1B^fzn1(fburs7$6 zNoce*RdWH*3fDMcBWr?@8&Yy;tbzsy&R-L84wmZ_K#?N|Um#j+TXlC-NJbxkU#JJ; zZOu6zOfaB)hNKVM*-krLC)*F(-mkBBOo&IPNQFt|8jc6$RjRPv)RoO0q^ZtM7a_JZ zR;qp&h5jxkLh-P}RpU}eE;68$^bxq#<7?0u^+-fJmhthvLJS#L07E>WTZ`48q63eU zl4$`bPzmCD^iPUZpx}s5XGRx0YqD z2Oc*zsJg}PI#z3_HFI_3D}aFz#{2PVR-rv&&4oSQQ+NuP&6{`kiChxe zA$_wqiW+4RTi`DWGKra4fImt0Y|j1^LYlyE-sC8EoCw^#5$t+mbsolkWo;k+dFz^> z_KV--FULz;8VE;$)#yn)MP8i8V>|zW^DnEJS&de|jqC6~mq0^@rdF{)hMB^9MKV8K z@nWVuSUGsM2H1lO*^5wKW5oZ)55C^7+BlyQ;_4JdPPeB%>+2$pMu~Z>6i4AIzPW1p z;zxTH&FzSzm*-v|kT-7AHAXC7oij0r<_6eV2#!iY=qccU<4b@$8(5^OcRpObXrE)xD*kw6}K0wYfxlqlFVQW^qLU`7ah2dkBgG=V5s&F;s1!J%^NWR^0k zC>SXi8W@7Uv4OF^kv@1m2D=|IGBDLYmN4Ib%v*&70N_dX?{0c!4||jU$$$SZU7+W4P+Z{5y_puilxPCvp*38>vGp~G z!iO=@4&-KO9 zhVSnqVnmu<^z?Be(E`?OCG1Ps&<@MMxip21db_^WEQsI(I78BBS)W*4>}8_vW*Z%@ zX#D{J){=z9e9(rOL+PPM@h&o~i&&;)u*G75%N5&Ma8*Xs;rVCibHR9dLzcv9&uuhx z)Pw~IS4zVMvNyriT9_1H_0sE&W4{OfRoHWMqc zvHu_gg+o<1D{{yLQd6;17|tUpI3-#bx-3&MnU~mS4>MC#?!#pq6ev1!SQsu(P1-U__E4Ad9xH zud=VAroft!>+Yb2{t1M1sUS(9H{_AL6KqFbFC>F$Ug)7qIAua}Nh1sI zkfx!nC_8B=XXhQmxjK)LNY`r7^-kOa|jo=rwAan6%j4tOMwB8q77wWCT-v_OS=jd%G70zR>7d#B2Rl>DvlUT zQL*2}i?;CGZr(~E1mi)afO3TwCK?r{VmLkiD`f4CR&q9Pc4IK9_0ur=uOvGqENy6; zCtE^sv8PweMtj;3C!eBKl1vhB*@l|b{0J}sWWkz#@&xmF0#4wpUY=F9GptUiG*0J9 z9(LSTzd3P!D4_$SKlS7881`8S;kuk2j@IYjVPw(XKwAOcQ$ihj&brvK)L>C5H08+0 z(2Y}9vMotBeCt6;61S4aRfaR!F`E)^3CpltyGs!hL(SX;(DvKXI|1E&>sNL1FW5rI z4ll#G-ztCQ#itxiW6NqG)432VzA(_E7t6FawVmZ7JaBoUjD=(m#iS{>sf8yy!UBG6 zF5z};#&OS->qM@pA7w@6Bxo|F=7elIxYRQvP7%7u3Yo+gp$siZw4Hh|QH3Bl0((;1 zHidc;c^cA#xte`Hjns?;ETS&8O-5W65SdbZK}8V-w~El~p-xVe)kUa;V#2It2vsPS znu#UEgpY+5&j^72a*?R;d>cc9j$Npog_H>H6$$;-dy|(K*DM#?N{FOlBXDCuu@V8H&$PRPoR%=6yA4MhSDPH=q zDT5-~O_{{?hOB4m7i2pE(ys;$aNcnEGL1ZZ7&Qz;00wCL5g7aEwBVIBJL0#3Ez`e; z!<}(k?TbPV5*{pn7E`z~bMjRkmgPo%%)fK)>>T&aMy-ZR7_bD4@L($N)ibzYza+aH zn?-vER=A_L|E!=z^DdSlP;`=Eo!2m$8RNVTiO|hU?N`a|b-9$GZ;JR9WF8*o>L};E zF@O-2)@k9hYUDZO4Edx~DQJwiY9D)tGe=RpQW6Ld7%b<9oaz>CJjPcra#i&V_l zQCZsq%ow}NI~YVBCHvei$a zQ^dAfXJrG)(B@tn$_30u>EW1F-Pzk`M2<%6md^*askYM5HZY_TD{F0XWv)hTG0VVK zAyQsnX|@4M#w7JThDZ*XhO5i6F+52_zCIRT2}3M;{KR|$G5&#(Y5(q#OYeaTNg-Pq z^|aRmoTp`|zcfm7d&=d9SsTnS)JOWEYH6&Jkh)UT5vB#}*cvjBaV67GJ7ww76jkx%q1hq?KgrvJ3k^6-7(E zO4{X0UMxi88i`U|I8SS;jc<^w(T{R1GRePqj5G!w(nQ--U;VP*#pU59ALi62xLmq0 zQQm#(V=1+tf&%wNtCHATCdc8fZDzHp-f1fDd2qG^%yKb2UIDM7w9Ra`j~_t92dr91NOUZ;n|FX~Y-Rq2{!?$J4@ z)UUlJ*PUAJRXWI~cavkUAY<+kJJ9t&76sU;Rj8iqnG>%a0cXBWL0b>qFTW!|uvx)K z%qyhAg2na}J`nTYD7iZr4YvkGUBgOxWcJOCsQpC2~Ixw>OAL><-0!-)ZnHI-i{urN1yDg2T} zX#+N^?D4g?0j^EJ5&p_iHBDf_C;ZxDbodsby?b(Z#u%?GO(M(A1t9gWHivc!xi z&Z@KLgnT~CszYL(6q!>unkPy7VLK{PV2T}S%WEVBOKzVO%tKH{{<%o}_IT8Q#*%6f z-~ZB1$bzSoa@Z(pn2j))Vw0u{wQw=bvY7quVt8h&cz0R;WNj$l%`v5F3+WjZHU*G3v|a9`7lIK%fIqU%<3Vw;SSU0G9-zd zNhyjkSWhX6^!ZDCMXyAn^qcRjoSOoWqd=Cjz$R=xvd_|E94=L3SsRoK1ANpg$+O@7 z!~tt`@S^ksV)hPLnPb2!jW)2GSmas5+uY|!eR;*M><+Iq^WoGFqt9)=2RO5ucf&jL=8)dUqUWZl z*XN7e4X@1I9BoU&O`w{i?rF<8R`ECF7IYYjGoCTi6(6`F!qrf<4!tzrwP;yDL7W5I zU&C7^9Ev#khHbmCb#RT~edb$Uihb+bHA`uSj}|NepbE_7@^Nk%c=eCcxj;Yq>p5a` zmmjSWF>dkqQJ*g0i=?;%>TY0p#F}+`xuNthw@-Oh9-Udz_yzw10*~=r7ZA5d%UYc$ z?_h^KslJxV9@i_o#|LUpMDXCF_&cnJ_se4GS3OiR|BILbF67SIBL+`RS_%bGW=VF* z+eoy&19I9<)RvYx;g)3bOO8aVP#oE*gj5^?c?AAZO9$fLqurdML9TP@zehqws~Zce zsaiQx!0%>?=_aDt!u?yL4PK*>H;nE*aXG~&ju(2os^7%jw;GRZpa`GCNM~<&0Fi;S z-w3XF0blS!-=TTmg$N+EVoC@(F-lmnH_z>r3C>N^CpDt5ubC>m&s|X7wX9O(P@T1# zJ%xgK-c(SkC`qVol?o6oZXwKI+^Uq0)?^6jtFP3j+^~{`axSn$9 zdoae+&wy*E(&zbjyII-C`HLS2^1Kl?T%TcI!B9ySXag7^CtRl#^6pq}@CVCG?BCRX za|%%(xu@atWxK+ev?UUT3Hm&M7^gv@JW1IZuKHJNVL%0uNAcn zSOTJ?=Q2t#Zm6m)_kEkNB!7(`JUXd>^cQ}DVGrznX4E&EGCE!=6tk3REISyUFbLxg zZmCc*Pr{_eN0?*0|EYg~vd!sRy@zV@K%M^#_?=!6Y^q#S?~QZo^`+Bg40r+*1;q#h$AQraR(JurE7B-rtBU0ysRvM=7Y?){T>8)GyQG z2V&N5-0zf$+WI?l?QaH@H4b*E%Dmp^MobA-374Zc7a?yaD{a7xcu_Hn*U64erjteZ z1YKy~BmnpLKFC(8^gI4ww65ubUTp|*n7CBNb)~s|V0^>WcTAUGIM*MbmRocdw4YFJ z+u+Uc{AWVzl6d_sxq0DVSWDkZltClSdBZwjF4y7w_!rX6SZ)S_UrKDtnMn-Cw?Rr4WDQcxS{eVHuUz*UQPWK|X zRsHx+AoDv2n`_BH=NQaQYj@W&%)L?97fU*)N!FC&EP5$}QX};YA^1#*2RFKOr(%O$ z{k|lO`bQV0+QOnaKcyFyvd2iP&1g>fY?TA|hw?DAIaqG6I6EH;U2UuA1I4kvHl<;w z6-nSs(hs~=a;Y>jrvtN=8kd^tZ|lcq%*#RG<(1It&MP{M@qBn#?Y)OlSql^|yZv{K zjI-y3Nt)RkQcqHYjI)M}i!Cp{mH?e?PT00Y(tGC61;H4cvV>xEDurx1+p@%Mi{gVw zF<9q(+&h7cZLgWS))aFb(c@JJR49hPW>km%&=sb=IloK#bH;?{sZ0qp9atF{nRZu| zGjhY6z)pBpk6+3Ixq8=CbJ$(Y0X-H(oa&MYN;XT?oo3K+)n^5c8<3hscD$Epx3crP`h--`jF%&LvUMn`Y;jTY8+|7QS z$a~&VC%>kPt!(AA6?Lvea1GgOv%vPDa3zV-9*c|zJg+lcKSW)>>LEkRO4&CP69zu9^BJ0BY$4O7%!nBd6xB1i#Z;Xye*kQaz|RAF`{AAh zJ_6wtq&oaX{SD$)Bk@`H9KP=l<`YnR#XYj(lk5Rfpes$Q+tdFr=kQe!-BPhcquWDc z;}M$Lo7B=ZG2vE9bMtiXV=)2V^`XChpO@O3)#5!m5nDuq_i&F~exz{z>)7nbO-$*X z#Jy9>oQokzW(e2{O!3URi+ozhz-qA04U+!T-B}0nc_-pzT>yqk4j&{Rrr$2AFd z`9*-*;cL>&V%EWTv0HeSfzP8QCSmdh)7g*g4Py#C_Rp#DjXUHv5v49;>P@eincXxm z_xy>M2Q_ zn(Kyb^aRofmSOBEtD_C_K(~{E3{N*5DtQ6#_Rm>?H}oNHtWz-x){rY$c2JWQGxi3u z${@ZGg?fLVKLi+g=z0#0D%IE?vY4MLA_}yIxH>!I2kDNp7tY;}AHQwGm0uXiOKzsZ zhZr+e#oMH(EzibIP}1&6PP~~+V(YQz1PFxC8jfoGZBf~$QcVw2eB;xPK5k$cLQrD} zs>D)u9`_8vB>dvqV~{rfwsLQ9(``OpAKKbbCKBS>Y0km|&9Soa8MO!;VYJ_Oc`XsL zbxKc#-c+IQ&r=AVSSnaW*?bD%FlNROcNG+iV3$i^Ld{JzUM8N4h{z=~tmzk4EOzM{ zre6#w^RL?dv0uM+tXYK}5`B!S&o{tgqP*VE5q@-R4j{6Ig+HIxSZ7F|TV;ej>+p?H zjz1Oo5k6l!%|eCnZkeCQhKRXSQ+YTZ!LBZ*zf(yB+D!)j|w6yIhtOOv^LWUXzE#m_jmT(b2 zXMG*VZN~1F`0o;C*PcD4Y#VgEC+f{6M&S`=NdGe0#aMxhe?bW{JCj}vgm6cJsJdtq zK$uUsC7@3HMWU!5H%)LqZ2oh*=; z`lgV^n}0-zk#Ih3N6hPkp?7DUuM|YQ`{tta1j4q3FOoFL? zS{G!4SXqKXQCWdRLy5!06saIt83;H2`R0Fw%S~!hC2W}iEW*HDJDjbT~6&gFnBF(46t>5)9e8 zhvBfR-gU{|fWJ4lln)_{Z~x3U^CnV9=Djsar`umh+>EjVmh1=s`z_HwG%;0fP22x^ zUSVkP$O-o|7&KCA36m2hcxZ}qM8DdP=hTb*2&122mT>2(gy(yA@g z+Y|n_QEM-l?l~LsJG62=evSLp^&x%lNn_coHqbzm8P}7c^gGEbFs#-$H;Cr%vjYx*x0TbX) zMBsiRLivB+e*Zfn|G5LJE2f4xibjeF z$|L_72*Z-ELTJ#&_N<9NV;s+SXJ3GQAYMWB@&2z=q?Xl`EzT|NMxZMl`}>}x(azlJ zss0d!puI=ZPD+i9mINZBbpq@!U~-x<_8-^>4hAxDGEI_@YnAxU7wG&*F9xr};_74? z`R&gO*r)-{99_XK>LWS73onXH1efeoaCXa+ASM!4?s0rq!BSY8z0 zbkg5E0kMX*YO zTAa~T*sgeh|Mf#+2&Hsy|6IeD(Erao7B{i}@%j9(+LNk=9kLn*4_gaUj1dGRhP~fz z9cSfQhTxD{i{Ca3l z>rL_-@Y`a=Rr>)+3^Gu1Ryxv;57Sc9DDxB`g1Yk%PpxQ-3Jwg81z(}a4JhpiaJSPCnm`_)N_0}|ly;Eu z5Ed`;boSyH2<4%y4+||eLS|tO?3s}w^)7wZl2U8gRNO_GEnez6BAm?7Wz({9ihQpm0Pex<|^R=@2pC47luozh}#t2mA2;^odo4ioW z=r#KJZq8$jGUk8dE5iDYU)N{{XTeksx~kVT-_5nL>z|6s^;`L61e)cwS*D79H86A8 zq!TdNVCY^ZQ&EyTZ?`x*(Pyk3sClmjrWCu8q^k7)KCcOL2CW8?32qKuDEBsDNn#_T zc_k6*Vkfu1_YDr(mtY!}S&-hqfQGdf?5x%>%7^jQm0zYpdkhR%iAc&hdgA!eqI1L) z(3IZ6ER|HlO476_ktGETE;!(E&PoJF6_v+*N};%qC6L)GrbIC$XNaTN$k5&<;FUUv zMqE*2voCxCEzO`O__5`vX)oN(s>i23>(zhFYGJkfyv6x9-^ zF^Li2o@x4TkXZS^=*cnh45est_4;A`k%Kv>#nq*PvYM^RN8&CAKH70yLh=K`ppA$$ zDT^|dTO={Dx!WVnK$n9q(3B3vfHJu8+|d`Q`7z}*H4n8#(b3o7tQDx7GFnXJAuqiN zu-ge)=Xs0lwE%B&6x~0L+TcaF0@oHj8qV?GvJ0DpP9yVy}a~#d>LdDZ#wltyadm1(EC>uvY403VcK27BQ++#8W1%uUx`@oHiJy z{`;tUl{ru;7qD%{KC6gEjxEL?Q+TkpCgjMv`wFCW(JSWCcOc8&e)@~N^BMobc}QXp z&eP0Zdil)!3Dn1_EL%jZ7RKpTIzQ5s6V!)^{YVhr3`n4Ow^EbTy%2=wnP)%KH`eE* z?tvkf=y0F9XM`h*OwMlKNxM(v-fSP)xiFMl_5k6k`_K{Z*dEg7b{9YAcKwoQ;}9{` z0n}bp%^{k4V$P+kst&ZbAQx48H98m3jFs&npykOsCTg1c1#geo(%RZ?#_A^lZk zAI^z1S-&&lBqSqN;SR>Naeot6Hn6hf9rNKKYq%TUF>>t``ypG`e0;RMWD=*y%-tC6 zOv&b8Ym=wRxJ1`?9YjGZfFWs5sNDZx>>PtD`?_`CvF+@nW81dPj$Q1*!ptc^%1UACJX%oCz3ZXmO94wcW_JGavJlvZ^!-qYl;x?^ml9gvUptn z5+{)TzjN*X!QjVeocp1TVDMQ1&ig>c{cU>tK=Id@w9SjqjFTB+J z8w|S7C28uCdSsHCqzI%=f?DnqT4p#z{V#_hqzMX2{t~>_Z@;$Zt>tEw*-QJBQW+^#H4uw$}kJD&*5Y`bVaTa>mSj)jAGTUz+0~+Eg0{V!e>9 zn!nw@NHK_yuY$&$YQ$zfqu<7wZya>wkEjN~C#j!9|ODGW(i4;5!5tOH43=!rc zzBe|VjkkhO=ix2hHcs0psI%{Uf-oUy##LEt3#5mB+*fMEA^0u;i$KYy{DM@|C@(Am%<~h=0!>=(>YKUuM}*l} zN>dv75m`OkNbns>RJdl<0Q?=CV z7*wYo=VYr^BIr>y%ft03N0vOC9$L8^&S|;2FT@~kzu!D2wTXweIYvf~ zArtG`@ds279a5ei)j76tEie-q&qM;IAtebS#>-|R049zmgep~3Iy`26-)wTe)MW{t zevprn8|@+6@U=JtP+dD0N{%>-S5>X#$5j?F@0A`h zLh_S=-cs{ljx5UZlB87*M;JBwOe27{;JJtzy=p=-^7`e*=v{QkGHmbnO0^Cprk%W=&QbT=kUWaA@EI1Y4w5}q zo$(zFfp3I<6*Q-{@A-78d)A-5FIF^haj;wuEa2<5(`J}eTY+KBfay|>+%5UZ(DlYD zIuV)mQB|D-hzvW2&oiHGg~oZ^3s`47T-G?C49m~hhk&2^ePeX2=r0%rmbCm(9zN1% zKaaBaTGNONPmV$DMdPsZEJ`~2umfEZX4y2;?anRw;U;rx7WN`b2!`LrIMWlqU>vgy>hV3uEGMrKHZ-YtCbC!Dy!BmtF(&j+A8eY+S#*} zNar(?FZx_rgteYM>jSN}g=|`%qS^;bUeKaz{WhIPGnfMEWjY_*zev={7JuF1kZ#C8 zAQ_;kQ;zD#UyJL}au~raZtYj&OgvlfTGHTa{Z^tOW0#)SPBZpgSC+MtD33gK{RwH| z$sz|uRi9GIgW}54ZB&06mU{G%8h9F3Up0B}`ZLtLBdJs*Ib1PNuH8WEST@}j=J($I z?kIvcao0YiXMY0MMR&m8>$D7XqKhGrb~`#|Cv+~37o&iL@jIe{VhIn=-R`6g}df}|2D?x z1fqxN^)pxHWJJK~S+V7}+&j#x%e#x@t09G_l%EHXg5Cb9uPUE_0o5z9SYSu$Gj&UO|W5~=-CI?|MO&u;Z%Y;Mumdjhu7j6gc*|1Nq zNXMgThNX*hq#izCj#LEpy==@0&4uLQ&imkYO}84hiz%!&T4%s2ZFV$;w}&apZI1*2 zaj#3zdqOBXE&R^ITY)&0D?AGHRs_mHiJ1QARwcsR895Dn?-+3}QB-Gqp96K*0a+b< z&j-pujQHmP6A6kQ6cYt90cSW@MEb;jizq9`X+u)j zw`)g^w7>sgNe6Hb8KVb(*wgL#U%yL^1r`XUzvIw{EcL{jg^~jmt-8hq?Oliw z2_S&HS$2LyaQ)?1OC_onDCA5*R>S&}2p35*N_$#RE|n}QR1&S$4onZ1 zsS&LiEu4j>5{h(=7&st{4u;9Wp;XhZ(Y-LF*{o{$duG-wX7T&<^!P)`=GrSs(4W%N zQ+~SZ;p6JD^Xc%~&-W8e5d0V81!Eh2bAu9H+Ok9;nkn$rut}zsTvZ!zcm!i>uhI-x ziWOb(5y)L4epi_g^%$eGlX)qIG0*}Fony%_P-tmn@@EnLoaUPZIJwCAyubB1EjD`| zc{4wxokQPF)Ke)Wwf|;jv<3e zw(t0DoPAQRQ-Rj)f;NS(Zwv@6BwW}=aM z{WEFyqj5pzW&0?(^9T|YBCj~}^@BSaZHewg12S{4i2IUsmiDR*y|Dls{;9f>#5G3^ z#}{nw;2noZXo@CO2<#TMrgm8iotb*LP2sLEjnBb#y=>$1F{}kyt@s~(RDJuL@-*cm z)P4IbuxccPralYy&PJ7t!}Hv;zb7kkm0k@_n0~wrTB5P{1o{?Gm*h_?xv2Hs#a620 z6OXEf$1_?Z{(yHq1r2${3x$x z=2fFOdv+Z@VAEKQgJrtVRTd|eWS!(?B`VxFZ@pk)kyjw1Vd{B@`VY|ANcc*QDB3{> z`ijb*+Y_YXWSAiAxYkwoqgk!>0?3Ug-Rt2qbFJZmWUz*GD{N*m2!-yXT|}9drN4wZ ztDblf+@Z=m<@#$k<(nxTR^w_mx<;J8lmp&BG0%Cb4-ZKQUq847P#(b`niaua1e9;G zSvs%K^#{kriz~xbF*M!(dOs(JGZ$oHx~;U)s4nrVv{V4vOZZBo^YZpXPb~Ert!wki zHNBh07dMSHE}aieg%r$iVc%{rhLqNr^b6o^XaJ4H4Ph3DH3VXo zF6c54rr#7Q>9RzZA!qs`cfd8&)oq3^On2|1 zGF=SkLs;9(rOp!*>N}AuV0B5i?~JQUC&X33D&Dv0#2JW4Q91L62G_2D=p;jo_@q5< z>rHanaEJbE(DH^q)Ewg;x^CHwi8-pet&)dl-;ke(e`(W?fx+E1@nSuWXeGT^gIy^u zqkp|T6ls|$CdybqQ{egue(Ou5C^t#JuZxp{(-lU84u%r7kM1zjNziNCAF0S%7~B(< zTf&}QddwT)v!ID2NYNlWd*=-kW{+@LOcM&=49wz`K2g8*WukD%AcH*!?4z3=?vj$t zoIa>FMx|jHBl#VhAhKN716?(i3@e#x_Us&fl0vi@^lF> z`Y`UBmxWNIxc80d;Dqrj0&WBN=K3})9XOVQ~@2E<7C z6uWx0!hS_=L|NoK#sk2V9uAy_vy%UWVz`9RVBP*-t8zJ5VQIFQG0%Z4o<__3G2CCO zx0DyHS-RBO#ashR+b*oFXpa~on{XvFd_b^WE0-+r&`K<97q+bDanooowCQTqCPLkD zU8Cena}+V^etO3yn3$5 zanNY(Iv=NHPWw?~+)34;7?oL8*(j~KJ)EitZ5gnuui*bRyRs3KTc>>W>g&ItyZ_T0 z_}_GQA61$EINS7LO9c-f1P`q-8yFX9Q-ME7fw_t-mx<06nBLZjZ+jYliqFhK)?o1r z_VMjAguL*izwNPpw(T)2-v1bp5Hw_HlJ9uKspl?dWOBJiArIuhA&-bk%p3w^LeDv; zq4~m#LA?g5VZ4OyeW49<*ns{P!?sWTW_+d@ zDp?&Gev@WHZnm2)cVXhEQBnyya9L!e*;Gu!z#OhhJ|36keGX$3C)8I`71T zQp7a3fGj72!(b;lma_xlX+NxOPaS&`6mC1)%ay&%6i({Ez4nr`bIh-=r`AnS z`nb}wQ(!Rq`TNwM!E^&&XOIjZ%Rb}CE#C$ACu7rkE_^#lgqmNYp+0t7q%(zhJP?~( z`u-F#z$_TY9J>Usaw%L+NsTvD*r}tLIi?|<3SYegmi%ftemNm%XhynIt?Z9iR`ahK zOb90U@7sV(Ya2hvYRT7&O86>b)hIyTBPOx)@1rZ;Cwx8Ep={5J64zpPRrO>yy4Py; zvKqe=${|W=s&|Vtr~v5lStc#v!r=7Ps>iqko_mKt*0l+~m@YxUy4b63BDthpK_kx_ zh^ebHe)sAI_v@B;ELsAM%JRv`x16UF3l+@Am@TvTl@JdxLI-ZU7~j5~Xp5sQqjEE+ z&e_K1O~y~wrP7A$nY4AmGm-|TuFzao4!~`5g^nYbk=+N`#FhUAxyqbNv`XZcy*;FD zqB^Kl!&a$tjdo!6OImHF1tLBeZeb?@NrD3>ads9W#?)AB~q$4H?K(U%zNY*{1+Cmj6`v;|f%P446V(1l|Mm1gmBMM346jbu;fr->%o zvYBV8pUP5J5hXF_be7l;Jya%W$10cnr6fm%zj5|##}cikCA}Q-$S3_9eS}d7k(Zvs z!;KghCpunqz-9_o~}T z8pzZMJKhwdU~P~?<~G?mkr<8w@h8gI`yL4S9~mggZi=)JFB>YBiS&LC-0OKBYu+V= zSG`_mthq6*lR{@U6rStCHms=?jN=)QJ5sk1z!OQ z`Bm8bPoLd?gU*vS<!bQiH!*)&>2QH$DUPJ0f&KiS+z&s+XljvjKZdq zbSj6j1L8GKc-oOR;EKWv1q z-<-&6r?^mR^5!J(77Bf|3@FNaN>(jrXDm2Ltf6dvYekA)#;CH#@ULi?o-A}pXF>S= zNmiw1=f-` z4PqL30qJiuJ%rUhVzO_cFqb^cYe}1(~ zy3FBu>TG;@o64*GrqkaFUsj^{V$XKX%Ga8^4gFqo`JQO)a2ihNLxwoa_>pb*r)$K7 zK+4aKA$uMt<3k>`Nj02k*%r$I@qS@=BX-(oc%yG4 z*6=`$xGke_3q2peNlKi1jN&8;P-BP4#+_c}45Kj&1!?(?Ob<&hY`ns^ctmLTgs`(I5Xqzs`K0R9-W^-y$?g0)5ya6<1-!Ezq=yzPQrb4tniI zmHe$buTCEIp3B<+h)eL;QK^2&In4s^!Ed+VK10gHB3AP(W=yLimI_YQ;DH0z@lFzo_H*NYS#;{wq&#p`$yf3G(Vp9>*bw&! z_NQgKLb&F9?K9~nNYs_<)G(XQ^5KHd(cBMGnVJZj(1?#C73opPfdioXLB3Bi&NQB& z>u*$5+e+Iqa-?%K5yO!rw;}2{-o^9aR$aW2G=In@p8)OhYporB^w#e!}H8%Rtcf{THh>YB^k-_0z9Tp*f zjmm^OhIFg!7*;ok+wfiR2`zmiz(bBOh+E(et2Fg^jdNc7)pN4Vl6*?_V)1wS#NW{U zdUnUx4A%8cLBQQ>LL}K#2s{7BnDMXox42km6#m75Rd(Bp*>bsufW6%R$GKi+!+wA7-UzhxuVkyp#jN+K zfG~!pdblXX;8bSB#F!klA3+i_-P`SAt0RyUS;CQQ9JHKixiZ>j(CZV&;lodT8BRkG ziroAn1fLm2rW|0r&{d7eH#yhbRE zMJw(xF{``DY_YL3eJX#0J(O2X@~w|Gdr@wa?{_@xVvc6B?_Z#Mq!4UK8G6$mJ&x~% zQXPO!?gp3_n4>6q?H_ogTr1M|Q@J*(k0G7qe!&QhS8USFq#eMaIwGZY2H%RaCbDZx zmI9DvZEr->`sPM+GDL(EhGM)T(q`0*!>L*lXS&Lpx_6b$mc(dQ(`O&pP$w1oO_&s{ zfC&$VtSZWyQRhuc2;7GUMO;9{YA7>*Zxl9H0teS+K1VqQ^a)*_k~8$pc+fsuIpc1H z5wH4pvS7HXa57?0zf(u2S_*tvYb3Mn)D1B6C@~o(L0fZ?^@_6(ZKS-P-dcroeUFMW zhDF%haM)e$%t{B_^@QwCG^-s-{lTB%wp_L!tp;el?U%~UAs(AKJDq19P{n3u$JZW}L zzT8$6(EFq|@D%<`bH7QF=`pGUB^asqsek@h;G$YMt*MoF*Xjc&7mHRYNv^h2hxjT` znSw`JNLlK$k4>24<}*8-nD*ORDre;%!cak^|P48Exp%aWSz9I$6;Q@JMWi zJx%&l^g)TOZu?TqS8E*^_~_cBg7OCG&KW0-r!T_v3NCok8?ll0WBWL}hP4Swm$V5E zGRCmQK8HhH3ojgeh`-lC$QWkmme6;pR#HMTcv7*bFz4% zNZocb^MpN;dCD?wYB;x?-9uf&qYNwhgM6)(?*Oa!?XpMcE4nwNdF#9#$&X8)UqojE zdEpoidu1;9J|!?FgtLHNDaTqtU%|@?IwGD=hJ&z$tvIOhcqz$yFk=)G{blNDHRm%r z&82$d>;Vr3R~)20(5a5y2Me)N5>_dKq)TG@l!RL4P>3{or1tQzlg;jgd+Nm2N_V%K z+QlCOZ)lb(*mOmoavP#ODn5U!un91%s`p;yvacBoJuwuv2L+qLS6O^5AI#TP{|B7*LjSyp=YL*^{ls~^pHwl~h_j=8Sso&y;2u)O@$?Upx?MB4^p?nSB3a5xZ zNZ^w{1UY44mCP#=c?IpBOM{lyCnEOwqM>nc()mO=&AGKv`osZGp>z^_Nu%AmQo!8P zwrmb*2jIG497X2;v76epM`_#p8u-|JHOl^*Gv&XAAphAY`}dFkwEFgmlav2ynT2dO zl~~NH8UDtE>8L=8H-S(VBgHiNp%%+lOl7LPdPIS>qe#p7ElikG65~)}vj2|P_b%r6 z^6w!=FFaa*guUX2c*dMs$Xds1g_2pr7i$UsdJuvGCfvSl7D-E!uB3yO-C8)19@x-0 zwPw~oD=-S~({COJux!+j_;9L?j;BBOGUM#us~v_zadoQdHY4CT$q!>Mm%t{DsSKJu_V9O@ zq|#Cd6!Lri2bv3!w=;*~YgCkC{C`zy|9g%8m7_|$|HJ3!;fCu;o;hg@ZWWplnNTn| z9)q|I99#q%85%_D8<-_tA`Cn!i-T!@;SxrTOU0TRO_NIn+){^uzZ5a7C5FzK){|~k z&C*ZT#w_3CjW^RH6Vt?$Jt(wZ~ZL#e9q9{#t+S)_q}r!#p=2XU5vuq zM8wp4fB8s=)z~GiFQ37zfS^P|%9=kw@nS3j0t@^**;MCu5h1a>ymS3|4$4+hiAWk+ zyc@l$0Khfm9XOI0lU#gPNioS*XF^rH^Wl(~k1N5d5kw2}x9x1M)-%ZDFT}Sav$7y*E5LirF@Wqi>4#9ca zLNl1>5%-bt79Sqy&Mnnz1k;rTz$Gv}c!YC%@s6G&7pp8SQB0To2EdAjPA4q0v@w4y zv({)VMl!T``n9Iv_l&Wa> z_IUl}rDRo>Rah+x$T4u0R;g^_sc~~G`(gNsqDC=ti*hb(LG+OXu7WUuRrM_uWWd(Y zv%|r%`lAj~7Cc4UpK>d#K%2cD7L*1nHC9&k8ZF&89H!r6}~b%t6S^9Dp*a@_|SXdcuG z=vZhHVmYnW%FIW0OIBq%gsO9kvu9G~g_F$_r?3vN=$TPt9hT009N}Jo<#Njc%IYEl zZNA5Z`ZC8NN2hWy%q9YO2EG~#;yG+2i2k*LyWy=+uIe)78NfI&DKwJ4lqx-!Kd;aVcmhQszfgDaYwWO0x)C!rL z>VCx^3vwL}LnEv@fReg$TmJzr}75g#m7h_Cf0@gX5BREI=xh1kfBXvW1M zV?dvdjCGSgkq|DbKX`eRO|Xwc1|x~FYS93_BaW+q{%i~ zId@0wt3VLy0&yNx=#;AHQU}$VVpo}nh|PmEqh#TDR!pe?toan?y_;I_e&QQe_>69Q z$h_ru&2N|X3^r1OJ& z(OXu7l%l&yYjmF&ofjPgC+q@6{+(&OVa0QYtA`q}3<}YLC)I zKEcuAoEz|o@CzRksLtbQZ{lyU4^>3KfUaT}f<&?Mi!2QUDhg$7qtO~vIJf@E4lGY{ z>1D{dq1_mF&@Zm-#lJxZ4_CA6oj>x&lEfe}f*|65YJ*`Q%2uv*M>QrFGoUGL9%e8` zh^XUe8dE`bcJsu$p$Se3RoN~WJo|xJwJiBNQNDfvAn%UWBPTj+wHtW#=sFF(ZK`YS z($8~4-~LM3j_968y0E!;c-vgxgk%$6LkLrYv`Yf{eBKr!Wy}cNrRcih2(}AY=4~~I z-ycH2A7m3Kc%Xt29j#p+s)~)s0QnX48)y1DqJ5&1M|g`~3*U`U*B5kBk;6I6ya*IO z6a&1Iw`R+gA@7O+0lPNlIgctluAMt7#|Xor7b{o-T~}X-^}wljoATh#oC3bE^f|f0 zIVM=HsVUqu7Q_XBuK*Gi6zpT*1ajxs8o1;3xPRGZ=ca${iY)ANX0?GKbp81JmJqxy z{vTKHOUa7Aqpr2JHe|CWTaw7{M7Z}&2zwdl@X6**g#gwdNEEVvF&mr%#TZUrmKtpIBT?rAeXW*e8Zk8-k)cyI{k#0<&%ebIqQ}$a4%9 zRlOKo7-suGWXC&TgxVQc0B|B5^W38Iri=m@jYl9ZP|$~H--CL!&31&V`D&-XWNL_Dkr64~v&VxyJ{=|t37 zBhx0Ct2qyV(AHNM#D7=kx@9eH`e++`u@-2xF~KcL?ownKfUygj8%8F%m0CnG?GJwuO05_jtQo0kzyg<-#jK3 z5&8pxiHp=mdcx5Ne2|!~I0jzL@UAzIT7Muc5(6*fym06_aaTIRG8uTJ7#R<{Nd!-ul*O%yd{_1ebs~A;?3_^H4^s46 zdtpT1Fj^VPoks|%lapdhg3eerF*S$S?9uY78_T6yt3*hi$fGrRJIcYOORZtkAhguj+x(K{z^wChA>E}qpb>zc;&bwZAqB5 z8w^FhuAPOZmL8=vL-O}_`Jz1~9$L;*Zwe2W2DS13I$1eYC@d8{1-MUmG3-xB+(k}P$|^_sHx!ZoksYR zG$z69axd*7e|T>_g#uEZtTNjC-WlfC#P2>CT^S+U6TCcu7qq3d6cTr^J>x2rFZcuB za1ArUAf^Gh(^&_YkQv51>z>m*5l*UqB!A9-(FDyXsiqIOqH4&x_d`v_JQ4M8MBc-J z?`y%c*g?P@3eO9UBcRp}8cLoexBv?j01DpsCluAPT#=6MIuzKaqy;(5Q(m~XHv0Ua zr?jvGO-Ss3yLTq8@%9$CU@kM|^M&h(u&(2sA|u|aXgLII6(5#M*KuOP2U3d@rKHqY z8>C;KTJ7{ujhFIwx!4bywT?{yw3h6I!esaPx?oAE0zDiPa55yh9QT2RdZ{BQlZU z_ram2Xc~vKp**uM7mUs*K|3~Vd@GD2Hmb_sapTn``=N_$gFqCfL35_aID=^EWH|;i z@!}#9zz7aJ0@Z6JO+GZ-FDiK{pWIQbeVhUqZzC*Lqx_bGR+Hofu=>mqM$Y>IPFy7gGWJ)6>F? zu37_?R8CtgGsUx}F??&nR`c*i!eshsbh-n2pUMFQs5T=ovQrVUXV=-(Ch*?A0D6#c z*FW9dRi~^&4;Q;%)bK}HJysJMG)>!Zx&Cu>z|hfiZP{Mgniy1wD!#9qHk^JlpkIP0 zU{llL z>d>R&9d+$ET+YC$)pToHKPVf~I^p0|SJkPgGYG9`-K(5FvUI4N2#Thr_@a}vHE};U zak|sl5tIe*06~9@IR1&RyGfK1hOWtn^24K?w=b zvm7!KtZz5bpSQ7v&|y_~?0a`_gy3?J=F9+r-J4ol$zi0_0D`EtE#ZK!wiNbQ$qXXj zN`*aF3>SFKAspN;*HSlbU~yZNA(PhRRTWv=6u@#bSW&NuA4iksp-G%=;x#3pP5V9i zwqwLUB$Mrl8<^ZS;V<_30Fp>Hmm@90TR!Ap+qY>;K8gIsrUcbyKjmgpWBaoqMozh4 zp}Od=rx*dlDThJ*)=oZ%lPWC3ccRc2-t~pYS`c;yL)+ z;^FgfkVV`*7055CiWz0eOoXdh+4izQ_emr}5xG&*bBTMb-2L4_IZS=3B&)6EdX(pW z8YQT_st3VN_4G3-141Yf!S zOYDkEi+kFiW@IQWx?D-YLR$Z|w&ekl5!x2(6z&pffl0fD;jIS&#(tAbb6<~NkKo;gGx zR6Vj-pU9uW>G<789CqE!ho$Day837xwDd%X$0ELdLQqf@KOhiq^Puaw4<15z0XPw# zO7C%iF_+ug+GkI4qi;W4sYcBbCwA=cQG?QqqOeNjN{eNvRAA7V7UK~okDge6W^!P= z!|BKq#jxI6oF6zuZ2t;r=dVslAu%S`)XXS}1Yz1_HI8M*V_x=GN#>pCN^iy6@s!6? zRS0z$b!@^L&~8IcC2*3;H8D9+H(5L6q=-&=d7n+&#&Sf{49)J1u1r9CNh`Q0kncs= z*k*jjJtBEG#t`Syl$Q#V)ifV_f6zq0eAA5S`}BCKaKydV6SXBH2Ud0X5ZRR-k`Qak zYGFi3B3SLh5t$hEZp&3huT#C(5a2;C=g|%<`AT@*%V&^g$X+ZMHFBNJ@tO{n;ulpA zYoSl~1z-iyl6ZrStWE2C8NY#T#dwdHw$I3%|AFd`W-B^Fm{R>kV}TJS7=`14LfS61 zTbGdgxHOull}QlX>W4RX{;WYz3R%eDKLgG@qN9bo5BxNQ8Kj=l+sg`NgRd(i25v`dHwD@+NGxPata9OaMC`&)oTG!Y!FshD)gdgBN$VK>~ zp0Q$boM#AsFJZU6h^WRo5P!Q%a*!D?64o*SFccZNRJN(qFdv9-c1MVnb(=W3nPG`k z0wT$>4l(tFZ~vhB_>*$9#C(wdBI;yinci)bdW2YO_T zG2G^oP1C@8W?_S=j2Y;RiEh5f-WX%hj$aR_;{BG9|0_U-<$X+)Hg1A`KYq=WlEQS; zi0$ot&%yg_^uawYh!uMnT$E`J{{5v`UQt%jENyzwYWaJ0Ab_rqT_dmovvXT#!u z)qjL~YauB^X4+_? z--?cdt)4FYku1rX?tzRj;49zq(TD%2cQ4>h_!Si8CK)t%$_EGwz7RD-$d)`=q&}VA z>sfo4ahjw)!FuKaJ!*@e_UW!0Pyd2*DqT7yzVNPkt7ZJ=I&%8?QXDP9cbxTGWy-Ai zMaO{OYVuh4PSc7XE93XjkyFG=HA|k%qRNeaSNXBy5LTaGLP0LgF6)C1M9kSLc-5j) z43{5W_Rrj@qi1f7+FY|6uhbv}irG(;hud{cuq`dft{lFdDSR)IEkeIM`RiY$tz_Ui zvS0`3PyS_C>=^5ay`~?Fw}jWU0;Subxga?^VDWk7?0N6>bpvdyo^-|owwe23^k`=; z@xt~no?|HXDZ#*V`nBFiXz)xEDI@IZO)wU7V=XD9Y(I2nC;F2hnaroY7casT&wl$M zdP#<1F#E&r_ULIdETI#W2)@IVauDT2E-M>js?> zo4kR2ipn^Ti??+uMRh8RT$U^HY)dlE4=B}EJDp<&x*X`VsSq^P`pDH3&`S?Dd}wMl zW6kiUi%6_hwvkX7C=eM!P<3A4MvqS!^$6oRdSl2(P2(*G#V)3)xS9aWi2ZR{PPSJe z>xeAFts_BhVtt*-3x$VW+o7!PP>#EN*kIT5>~6g|Fgn;0do1W!8Vxm+e)6oJxdxjl zcxoexb<^QN4{m`ENP*21)L~$pmayA=A`bV*N?)F*3DMsh0ypq6a#>_!k0=h!33%PV zJq}&R6KoRY$qII-RB(dMF`_v#0fvEymrVqS={!HODl;@`kpvmeMf@BXc)K{{8Cd8% zxdP+C@Sv#Dk>v4ed-)6lJL8AV(Z|s_`+Y@EQS4LksQH|uqy~1wRqwIVzWa|r+N$Ma zNl;O#h{OGeno13?AjCuiC1XUD0fMFupjZ17XA3zIP!ueWPBK|c7^uuo@bJL~xQ{c_ zCZF!7%lIo4)Klz?8Na$YQ(AaLT30-nOR?LdH0Q>y2){=bhrF~lxeM$zeHnehx~_k( z8bI&Rl<|ERO<9;M@BP5k~Ao5`Zb{$?itN^~Uvn)B`&zMi?wdYUp? z%W!0* zNpSA3%yMNc&AUy;p+NQGw^lAcifZCfLLw(Z*Y8857usWfA7CF+yhsU~ABo;X{eGk4 z_5{q^bjSFFKR~KUh_s|5>)~Su4iy7vcF}neFpWs6hsjs`s|vuDg`pL~?&@)V_PZdL zJ`T8(BpmD++b7X? zEGUq5S{CFR`$+O~qBj|%?k^7~(qsw&qX<1$5724DfVBtU#qpHeksgU%CM{Ku;RZQ} zfW&?sQ8NktnVPZ@aN8-@a={*{3UZ@dw=X|BIAMUUC*P?H64)r{R7U4qJWh@`_#RGs zum_Gg$0%PcK`&pp{Q{&VEy(Y&=+@v379vVwQUIVc<9)IsNLMCCTa8MlCQ!`+80I}; zEr!TS!hJaJ`Z)6~Obv!=OiELv2c&toz$+1YYj%3qM`cqJeC8kxKtNjNpKFFneBAfe z8b}Nnii&7zq=}p~$rL1~WK8gLloHdlR)Z)ALaKGLiwv=NGmNl!U*t!3gw$bcw=<-< zZ$O2{+*V@+ODEKp!WRFwrSEmkHTdd`{|?gF&OSUD!thxcw6n^Lvguy2?y0f68e*Ab zpPFDk9y-w#evS>$ln&v1ZfBEzsZkoYTTHH6%2-IObir(yc`+Gic4vPmq3ogcr`_w% ziH~#>VoxON>jV;iz#r}L)rGG;xC>MdLP@?n1_Hc#quzjkmy!ua*$8EZjX-p~f~*BO zMuDN@U|nt@-cez9^kK4KFC4!2_342LnSr(nB%e+LVxFRMUY7*u6!GW{n=mB9{0vju z%Yi$u+y2nKxdukP@tp3q#&JxGV!W?W{Ox7sf-W zwc0Aup34+j_j5OO*hIn)TN=cD1n2us4K6pKpK7ZFPdigS&+~jctlLhvv5Z@CVIBel zl1^O8j-`(~Upif|>e_mm0DTRX{m6;^l5C0D5 zD^w{u0+f)MpoI;sa6Y2hwZd) zKvm({h&8&AdB@`1(RD}ql=HEW=CmulNO+Qm;GogoOp^iDJ&AS#!D*;28G z;1`+MBIUH}qj^T@iXs>=dxm+(@dNuDQeZ+57*KlV!Hdf?;`%^2-pQ*A$d!AB*!`n! zJ@P9-;h6^#`uZ|>EaaJ?EBdAl_A_XC-_HT-1Iccn_Qvd)jbE_k(Leq!$rlYs%M`N;Wny5=>UcTZzzv9v_wH6lY^IKCJwFR|lCnwM6as!G* z1p(TF)~6^G_7$tgIqeqz?x7N}n}rMW$h}ok$8eqEh2l&}J)1AyMFetqL_7_wL3KL# ziy^Ztib}o)dVhr>HEZ~(s8lX?3bynkjJhx-)o^Ai+hQU%l>#wkGI|vBQX6Hp$`ozD z+;a9fKNHjUOcL0sgl{$&w`~de7|7GOT1gQZO4%y26tUV?ovnIXRk7Pb|BJGBiWaR| zvUS&*=9;!`+qP}nwr$(CZQHhOTWj8VZ|zgn>OZybY3FG?XJpHf5s}fq{!pxj``~h+ z6OPYhT)NOec)1Vd?@3(63YnQ7P0u^QJo4GhH1mGX)CM9obnXDmb@Hr-YXKXD5Ef=wlDaU zNh00M+OHV@Nlq7X9PQ^h1OnbLcIQKOEN{_mo|TWgBs5mGa9G;yCTkilO}D{Rm-fdC zG7|CkdJEuisPy^@XhTrW^OgVGKBg+Zzu>DOJb9I#1vsSfO5#3zmhE$>0-HE2Wa0!u ziG3ojG!Zvt_)0sOTw*b)AT9FW&?-2qgNEapD=F^p*ib$09Myb&uOAO?rgp-78Lxb6 zH}LsiWLi0@$Yw01CTn`?*SV}6{wzWGPnEuC=Vn4zgQfXdrgUKBxJW1Qrk)W{LqUbw zDzN7%{BT?gx;>>VagGR3$8Vpym7v{qLdNQdX=df_go+VIO7p=8i0aG}YL_HS+`J}m!JKoD2ZA_~@Lz_o z(Xl3rzpss*_J6&Mx)puta{(MI(@YEFKXY0);d7F6BHpyiTYBkBD3wz%QMSLT#QIn{ z6$K8pDLvnH;B6R{gmSB7q9CJO(mx!!RV$t&rL>BUx&#lkI58%g^yBK+I2IjG{)w zE7bVV!6Bc|Z;~()(UqLQrhTwXqG$TUC7 zL!#F-*R3Wip)ZpwGTqdv{u5GRIQ_QW9%!xH0uWc=; ze8i2kq$alLAffb@-ddTPc>z7X0U{hZ(~m)L>%le#M&XK_~aHl z1l@(l=?A)lOAOx`fVu;%FZLl+9sOPY$=o5EEcw# zXxS}pI-&{OKq;j1AxidwPB?XqPCz8P)A31r<&?BVyN4e(p*au`3qK_{$~^46JN}I< zztcT`rw4beX|VG;Uh7)w$SHJ5c)~%Hb&%jAN0{ubx9||E_;ByX zMg>e!K~4Z&-0RVmQh3J@{SUpDO1WElJxQsTqTGwK{kiyPj$kPVf%q1h+_|z^se)O_ zB;L7wSbJP7$wM!Z2%J-aUVGuAa{DeJ8?toVL9Y6-Ko%yv*so-3x|cp0s@bbwubXyq`C z*!NSnmT{^wZ}*kaJNW!e#p8o;*mi3AN)ps=;&Tn~To>eGG%BQy5qR2?yzMAGts$G? z7z8Sn$?PhU3#f6*x;{yDwAy{g zK2lcA7>)Qs*^_j&D-9*L_;}|s>F+AJVTKVPKzUBTjdpgTliO|6p{A2nQpKxMRPd`m9k`%&GmB&WO>`A_3Q^nG%`Lym4pQ&oKNT9+e_N^s>0% zEd0|RB{oT$EM;e)NcyGYc>Sb>BxCoRlQtvw8^@FfFvGS?W0AV_a)=n}0-aBdUT`!w zG;wC@000XB^1l*#uG+!Wt9363$2VjLAk+rYxFszzqdf;8~A4OXI>h^Eu z;@ZNM6hlT66Q!3a(tl4T&&!2dg)xHw8dQ*M6`waK7BVV?Qze93=Rb^seVaVGsbdgr z<|X>+JH~C%xK=Te3EaMO-Ou6*`t2(xM$@F3lN}<;BLirg+frwxoY>rtUd!R`11CEr z7yO$RhSQRi)T$j-lzS*)5m%^IuEhBDGLVFrHj=!6j9cr)!SXJ>-7=vy)u;t}BwOGX zM3j$O?foQDQX=~F5kEfD~z z4tX$SB6|QUqR}HID0|^g-vnT*52#cjK@`V9oS@D>#Z<)&kfjl@ZNChbZbO<*+R!c8 z{L?b#um|pj-AO$YB6HNT3v&>6PnnW(aCg7KDx>Y!bT6(+ zT+{z_uf0ilBhb@{Gm`+bYh+L3t-~G4GUg>X>NJW_hIbd&>&#}mC@4nb6$pS-?CGc7r zmD!tQ^2S;?L4v1&jaR_WPLP8y%q7MAfX09PMoNE@Ix1;sXqYuLa5THT0u|gpND6^a zKpNSYo4b$yhM9MZ@0Okd7L+np{S|(>PQhqErpDRz1!x@36q2c?BG&x}tg$D70$qH( zzdlagVzD%u7DTe}?%4H!gCsnixv^CJ9Nib7sLVb~lc)E!TiW^#+CIz%KHo;J_m&y& z{SV$dH8Avz-0UrP;uy>*m=BoJJ;DB#1l;zXMa!I0mHz7t@mvGi3f;r*x z$SlBlSDHmXCM)@@-da`7`TFblo``IEia1$vIKzWHfuFH7KPdP6$ z3B<1yk!N1F$L!q$(jK1Z@cs;SL{d}_A!{O}L|L#H^68CSXzKWlvZ5PsXNB4+ry|EU zvb%4F{qGx6-H*)IZ_xM^9{BHXAf)@5!H*tU(RX0B-kyH>H<$aXZ(pbT9NXki`1Qjc z-G)z=*FzsX!f()xBNbb}PjqTLyVic<-414OmQ~Bzjbs3p4f#Fo3@q$Mwq4&Ta8Ro= z+d<=A$i?q+DunH3qrQ)3%h#qTf6>1z{E~cGHrqi*LYSGHDVUq8S3CPPJ@<*Ne3h5_ z6BG8gJfRlL&ghfyYSMN&pUd0t0r&mJ@%LF>_w@tjT~VnHbwt$?M0cH<-Wom}1U0zE z>beLLlQs^AE?`<+0>DwXs^hBc^RAEbV1vINNjpP*TjjNpVEl;)(ZF_aajTP8QgQE> zz~&YRYK*{A9sfGryE}MSrERQ7NZflE`Ono|NGV;|D>Pi)g96gLQu^A&vJeA%DtP9Z z{?dIowk7TDIJ_p5Ja2tbO%vpMjls`>2(2rR1aST48@0Jk;@JlE!QSHxvJjaGyiUM>;TD1;QkExp)Qdp5{)H^{s@9C?)2(W-d&Lf1X?m9o|l zARUGGB*+)g$2YpG{;t?#WQ9c6BWP;ZrMmPrZvDMHFl9^p$Pd{GX8nrQsE_PghuVC5 z0)e>xb_c);+5^h>3Fml#RU1`!)R*KL(}KiKNtp`5zpYaKcm?KKXOjopYQ(wTo%?daI~>^`WC(jwdKs>gPsw&{L?!J_E35K49a61IKeJ}=&!bERCsG%w0s$ci5n z4z{&r&s!J8P8SB$FN781@?bS15TU1~wgcq9%L3!>Czt*Y^dez1S0h7ZJxiy587EuC zaQwe$YN4BmoVi!vt3mCINdU?rMgJgOp0r3jyU|cFLhGr1;8s#Qe_dWm>`jL~Y}c8U zuiw1`v9vNu(+vbEanXR@-KqD(U#*IJe5d?$uzH!H6}#$%a67yzbkX3+q zGEh|grOU2Ke!J!b{W1QuT9hq4`$&57E*bLW4%iuqeN6{6#>mgbt)fRG>P_H((s3KF zBo+xBXPXvV6q~p_05h;^S^oQa_w4}QRex0Iq2T|PUi4q<{U^Oh=}LY>7?I1OSBEr^ zU!0cE6NujuS9yUZTq*K*87BM=RKJx$u@h3_5J z>PDOyl{Qw=q;l)Y{HEe{y+l|RQkl2T{wjH|^UY&G^HBs3Uo6^KigM!#K zeB%(H5pJOVBb(Z$GE#|i8Y&&7D59!n|LsUC*~}+O)~+qTc!m5y9o)yXCzAd^VH9xa);$d!hJfD|&_T^QH92);X3FPK zz2o175^sc77FV(4&|1O_(HL_c%M=r*zu13%4N$Y8sKGI z)=x6KBq4&*YsG-mG&tq>;`W8h_fe>Gp#DlcV*ocmy%{F8mMsqM@G1)1%17bP9+a}P z4&PfpyTq|GS)eqDgl6z1mDAZrn!0613%?m%0UtE1%xY6Rma+g}NIeqHjnUPnkvVhshCdjnuAtk0f-V z=KlpwE;+Tz)Z!*bK%|NhE`FXKk)3zy08E*$)_bBy$cNr7NXdEp*bkcw6=!-0B@3>j zFQ>XiP?0W2e<8F${&$cnLGQFuG_ZlFFlddQ&ZI3nydz(hh!Zv`K`2-wrExx06#k8Bx*VHYB^5tKKuDf`K;Di8xj}nbVwVvk@*wft zkv~p(`rh;qwlt!DAeAK~4?7bhAEi@&Wf{3UUmasn;e!$#t>&~j$jnkXku{TZzgvTG znWq|pPhljVW(WBm^OGo!7nErGY3{Lj;Jk>d=wc^_!qCE|7>pOwX(As*nz69M%AI27~YaX?tEZ?HN}ZT6;in712KRdbOWAilou zaS?7Q^xodwa(PAFyvSZEZ0FX8v~gcSmwTl8ob`kGVgmqd@uLO+(FzvxwD$q&&S4fS z;Mv1Jhy48qXnc3{mvht)Mb;Yj--5=)et`M*#(D-uQhFBuiz%0-;--VKg2W{Q2Bcpb zmB~6>jiryE0fs+Roxl#lAq5_tR9iT_%bVUBzzA;;0XG*(S}4(8_|eUBmQ8)FJ>nb) zUUlUtk{O3q_)50$*l1 zohdzubPpL3R(OOO6q!vQ`~)eC2UG-G1ut;~DZKAzwn27EW`bL?@hlK*gy={ja|RN0 zwFGwe@ZMP+`>I3NK72pKKMs~BmN({+k}`L<02lxf61m^Y2pL>e>m>Rq zhKR+Gg1UUt>P1WBt~Gd7&!9zZogyKm;)Dxvm2EBEQV+g@+LZAwHQ^{t$|%@D!q|wr z>HljTDOzx+z5<{YX=4CvA6cD(!(F_^%7#WgQVUMf`(SBCpYCORaU!8F|i^1*gnT+3jYW0|g@J!1+gb7q?7dX$k(RoX)K zBI`kez^UA9eQ<-Z#$NY(Y{PYL_T&2N0HK6klf3R{R>OTLCH)X20HV zua4lZR<6nL)(|7Mi{a8*i-T7r>#$|T#@KqNEq$<&QC6&HM60}{zm{N?c{n2jr+^#! zC&Kc0oeKtgd;!p^v{jWB5f23GS_etNE_%3;ptrgFq3i_jm3Y@G;?ZmX{BsGeqLDfB ztHd34Yf&Ca%aI{pOX69u!K0~nigGh^f2)3mNj$^{z=Q`-hYR=}Bu%-ia*f~U-o(fm z=_5;WihUX?D6h5y3D6~xptkf-tD5&BH->$))Awq09mS7(4_sqbUHSKTxqQx_W)Y{y zPF;U0P_wDip-dLD;Cpv<5LFSXrfuXcvx!vT4KelR0u6fmn@R3yiU?bXu!~fz>PDE2CV9l&kiKekJToCM=QYiTqb(FazwH2jY+p zs;6>2IS7Vd%c2(Fr9Qdz zsbVs)HgBj@^kbcA>Qi|k;v~3zS}rx7D1+s|j$_^I%CE{5WjwBc-;#N@BjpU5q$aI@ z!E%pqr_Ei#AxC*Q*7tP#(lqZsyuwS2+ox1)cvMaH_}7GQuB_^0KyAQw^XcB#>}jx) z)N!KlvncGtb+Kd52q%2+u&Ihz;N~!Yvgc;(^tl9`-qcO9AVKee+Gnbn?T|pzjDmj) ze2V4?C2ytA-Xf@FjmRJY6vryWIRD9ad*04KWQ8l#V7~~Gm7BN@wXYGr2<|gyT55w1 zqJQ&Oxk$OyKU6heI)Fj>a#w&nf?B)J{5ye~TVWPR(6IkU1}m!A1<&4Z3(W zI`<*zi(w0uGg60#dy1V2;B;~ydzTcB4BI}B z>OE`k=tNr^G|!M0wcmgLU>2F9-LvA|xZvG9;N={+6Xb+t!(ZcAv(}ZoyhEOzZ#lfG z))J`p>w=Gs5)gHMxHS$M>RqmZINe40Bt>E8xd#@{%qqqvVh*wrZ;~QdL=)OBPw^2D zxIra&Cwh=UXYQNFS941yinu;t;lqgi%$)KX6= zq(TzA2f!xz$x73O$3@~D!z_8LR{kiOvb0esEJ_aCGTj_0&;oK9NyXgvsu%t?+!UQa zm4PRSaNr&W=Ly(DN==A^l&H0?9Du0N3yK@jL|SI-$>I02_kXgvUl}wp27XB3l2Apx z-a@v4DOCl(Q6azYgXhK&I6)^zcq1hWj*>UY^35+<3%*kCkxMVHc#Kku1ly8gr#2lKrbzpf(Ya*q8 z1@;!}(YOWj4$}E(9gH8bS9P zfA>tVQ*#4K4rIrEV3=Wevaw6_f)`3yudy1~0Xa zC^mrU3-1>Sl#h$Gbg8SW#~2WNbYo6t|LafCt#X(ugoJm_RS8KB4NuRnbyL`FE)#c- z73aNqK^uM6?8lTHP>XuTSHC-k5jj7wsiZZGt4N(wyL$Z$GEUg->rIy^hp;+}Ac#CA zTZ08_LDw&Xoe9)G#CDak1dHw>6B(Q{ z%7cWL`A6R8t>UD4P~gNpdGvd5GWqBE_V1KW_+H@W5dXat8@}lf&-|g$K*Rj{#qd8D z>i=6<{!x)-shnvb{JfJxuLRdB7i#kXSC;b8&biC>LGmY>LM2ZCT5Sg6Ra!GUHtmu+pB99b>X(CeDa?T~Szn&8vmi3)iRwZnl_bdxRgk$)ZXmHu z6%+^R2fuShdWIJZC7z~XzRL%%_kVKvGYKqo-Il))IVQx!If4cxy6M>h@pE-q;pOD? zVPvM*RY58F$@-+!RI$t=LAW#rvHSnE4mNVBmy5TvxoLxw9K&XFdB0P^x&N~cAq5Ui`#tgxiyz#>rB zk*6~ppn53?o=lsVI$$0@8L@V54>FV$k|LuJFXp4kBxT)r+|Yv?UBx$1L#D9Q$;V{Y z%>2l}X?v0$XfDskWF;P4bRCRY&THJIG%Q|O-V3n^TgdQ2v=}!MoMbq9kE-UbIV_;6 z;I~xz!{fJbvrBf7E`&RAQl*)0LsOn^{0qwxf)McAixf`}P{=$o!|yee8Jc#W+B0{H z*upAxiHAPDwhrLvmbNnWC^t~b5Kjz-%+9-ojH@{BoNoV#wwbjKO~XiW-_IUVk0WUD zk~--YY~V)@vxFEB5~5fQO@Coclw6150hH}Q#$e1vp2t<8$(m1;Z!-G(+VgT_h?wr$cLyBjS&hs9-ahdp_h3GoX z8iCS%mg3Kg+%FMm={9WTNK~$1d+A}gj0HI~$jjWkO|?LBIu1S{@}w39&PsW43<2>( z|C%)|Qbgkj$Gi~(Fi5!)FmQQxk}&fJ{G1G8IKeDaAhb4L(GE7M3x3jo3+r_=FGDCi zVtD=3JjNms_`}+B{&C1J>4V5w8G(15^CSVL-hN2!rP%{1Ag8pwj4k8-~y#a-inv09K4>?LN4 z>BHd(?^nXlfn_c@1gZA<(i9$2-f~5mWV%Ak(6jzv2R6k4(PlPwyLh`uv&jIN8cd** zER)J90TJrxLV%TzTF`0u%*ZjH7zVdqlDf+`g8MGy(buKH(F zYtWG;yKHQy!fNQGTRJ(Ys>-Tir4+Kf^mh#d0D0tGRh5qxC#D=Sm<#;>`s)Pwt&p_^>YU*t5e7DS56K3x zbvgH`qAEIJiw_ZOj#jdIz>^V-zm)9@{W(R{P*%PrJRkKT%Iy>;)9lZCgp;LO4`rgB zj7&<4ONWRedYmOnEVZ7UlprXma~zPO?2=Bv{}leN?+P_Sp4d4fYfw&}|F(xWf@6>- z88>tCJU}!@Qy14HQc#_+MN1j1^xLyxY))iu6EE4N;+Ie}FlwrxjIu&7H8#66H%H{K z8ZwR3lt=&2z?7mMWA~~BQ#d6LR=su>LzYAT+J8!wNbl_hk}l4hl{Q1?gl39rUB$Fx zn-`s{7qHCC=zSC8Bw^OZ>>0AjaPeQP?gM`B5+rW5!=^!CHZl$ISGgr81hU0MxkJZ% z?C@W?3l7?F1%ajWK(JAZjXbdG6!09n)ane;hpYxfUbZ;%!4gxKq2Dwe28o{)?aZ)+ z!YIS=pq0c9H9#0HmC(-pI1sYL>(&rEX4V{X)+8Vge!1ft);SpLi5xygi>;Xn%Jj_| zJQ}9FM|RJN-g$pv2I>ftf=)KXwT&fLBgiO;vTW|vU8b}!bcl{yN+zc=G^Ds&4|Bi7 ze{xA!_Xs^OS>RhXkOPSF$v<6{(rojiDeq1nY+<35ed=P$u6dtBUu9vpy4+cCv# zUf95X{mO&;w{6z{TJAqC^&%BFO-vQ6Z*G9gddY>rL`IDHz*R=I=z1y31>{;XSpJqR zSg1fz`K>=4F-HBg9n;hJVa(=VN>>FEdzr9zHm>Z@8XwM6iKp1AQPYTM7}Tp@I&?7Eqx|t`=YKY!!LzIMe45 z=C9+E8=XjuK5&7SF&9Q2Ys)moZvFZU=&xUE#dS5{z_HrR{+!>%xqTV|V1$EN%hLm+ z(+H0?M<*VQ+Lb>+zTVRS{1tVv(a~@bDd8n`x4UixQxt}2yo$my?P+Q#kl76nio8pt z8t4+9pUd8kSQ)$nU@Fy4WKU1{-FSFFdFMT ztb{mc%ajgaDyW)kT=xqpPoR-#G|>eAZ-t{g?9|JBzgRkBhIJ zU)9h)qlr|6yeF4+sUWa5CGPb*lAdOKd~BmD#HOdK@~$)E>ra>`1f1RVs4`fK?E>uQs-s~ z(^f$DUvyCL)vvXYF@sM~75WCI;2=ic0P<-(ioB{V34*Sx0*kr_ceZVzjzzU_so_?M zs;lu}YISs5lj6{1GTP~I@yhtj=k;c_U00Ffy;S8As?t3pw8iArNHn@VsT1qkBg~bC z9?qtsL_>GKq)WXOmgbP68f`LGL=C(OG_qCwUEyhz<9`%` zr9kSz*VIBTELYC*+bxhBvf63EDF;a5&q+fBS@rbM)@+uzFSQUKAnxoBCn3Qrx>CT} zQ7aIZ+TG}0tV8=Uqpf8d^uyOi^AB8kqxu%fqQUrEesErZ+o-)4cf`VrSAX7S!7+wI)SQE29?y!d*w3{;>!>LZbw2!@gTSe8iS-F6#Dc6}#*iN4> z8eU_~y7^2T)yO)I`w_tQL&Yivkmxa)rN;% z%vo>HzU}Zcr`^FUM%_fE?QmH6fMU{dW*E&5HU`go~ z+q5k4bDhA=#tS(X6{-I42<#=l1Q+cK??JS$Cr#5iuej?~7|!&G`e^8oU~IHJVCAzcxAm0R_+HZ}nW1+_ z+>{;PdHHn-jhlcs6G5(EF?gf)BDls2XzOiXIysJnLT=W{Z-0Lal=LuJw=2}L*RPnB z1{Omcp9GFys5YGgJtXI`^LUFfEVO6EHMBxpQo18k@(_Na_sA`5*mSWKkufYD!ZWvV zGfr&*e7Gt;R1^x`C?^ZcAyYw{BXyRFL=D*+rvqa62AL3+xyEG(=< zXK#|(jPZ55wi#I(^+EhZYxfB#b8s0l)o9hBwM^GL=Vm!3^p~8fkZ+^UJ9fVE9$Td2 z9@&nkgw{(;6rxv(ob;A3bCtoJR|*#w>Jx{q4?>5rtwOM0`4%93eqxrE)LriAO#o9y zef4IRD69bq=1MfTXpGD$pc4+Q#tkmz^|>|xH3)2*8@0wNUQTRD_eWI?!$4ka zodh-te_ohWY%B0XUdmcv+8Lwxe3-aiX$N+5dIJz#NkhP&ju5b45=ZD5cD6T8c6o+E zulR7d!({qG3R-{1>@VCt=o`#G&(Nb&dFO%rtOGb zq9T)@)_ko;zZL0YNBqgMo;1`yauF6RU5ET32;DyDtc{Ki3)kVw&v@PCEz5Waf-j7|2+k%3sKHn z{K>cs{(aX)%E-~w#_<1pO))UC{TT`PkBI<|Cz};+5D*Y95N=_Rq|Qb7uYJa^!^g}? z!ms}@ir!g_kNiZO>5N~@KV0;W|HO9&5f%pVs~oHs{K_2cboBZzto%7)&LGCZAZC>B zSqKjH@$d-^YiO!yXoIwp3xH^YqrGY12>OPk%eQ&Gigng+qf35sy+xh>r^E8Eon3ZQGQ6HY9{JH^$pEezF=<@YYF&?atfKtHHkJ@Pzd5Xg`QT4tSt2580(EmcCkd2pHy8*rttP0 ze2A-B{kCoPdwM_x)bzICXd4jv{mxf8&??|R)05Es?rqNvZ{|j{f~we=#|4rC9HR)G z#q}O}kq3nR4M`MDeVH=+O9F5T)DWq}h92~nODTX)iL4I!_$^l!{F*}8R$NgJNRd)N#uId2VL^fzx|ED>zRK4e(524qJZs>Y5V z>XTmocpy|*!cvX;**L5p@azBm=F$Ia^At2>e(?H#i-A$rgOm}4fcdIclP3VQ;rR8> zi3o*o%w31pj7&j;wdy${?i(b36~GLedht&a!b3vFo|! zbXW;0p(;cZhLLmQBULYHN|E=7f>0Sh+71qq4&FO(kVLl+p0=un@Q+<`UKg(=$F>re zN;yHL2SFQqhu_g3RYI_;OCHbrg_Sc8jfPZQx_BOD&ZKfuMDqkN5U~$_^H<~%F0RNZ z*s-qBvH;}`irscSI4aw^&~{iDr9EoNh9ID_ZkoX{H6OKDhPZ-OK*$LED2%lHHgugs zt`gg8l3?Gh@l3IeLJ_~=B-S2Mpsq8cbH6;pA2J%dR{SHy!t4}nYC$0mzH zf<1(nUb`sWQ!A#sJk^7`{QHJY$WPIl*E)G-YvzPa{nP5J*LJ+d$J04UEMkLQyQWEj zF)gC(jG@V@$Dsw+1tdL+_%dKRu3ZB&Opmz|mP*ne_B9fP$IeswLa>HVOH&vMLlUXq`Cm}dGKnZxOU3AKOpAr=DD zr4rE>Nyfj@=)LkD&<-`;uxG7r+lXJTnh~Ye+5qb_9Cvj0IM#T;TzL32QVX~QUKQ~{ zdj9cqnnaD1;{2%_L5TisU-;kuoc=Y_r3UV~IMnt1*Z#`*fdqs<5f~^D3=cfaRlk=Y z5LP*XH{q9X_=NF;Onv>D)XT1HopNRKzMQ#5m%D5Ja)e-tAW)3E#!Y$GhRfp0!P4{7 z6P8zv%tuz*H!4boNF3D#7FsgllDMK3WizAGoLcX@?jHPv0W zVhm|&9$9Fg>1@;=_dA0&4`NDy)V_941XzYlKV~E6+LxS$x$&;69 z&8;uXYpfjGl-p=@85i|*7a2)K?6wXFK@NIUY&buz1&%U+0xPJWt1vAi*lT6f#Jy61 z1`vzePnXoRRdp9tds}7jb9Ci(PxaJySJyQcc^3)9=Z@e=Q=vw!Emh@Ri~dM}$>Q}WlF-Ap zN{uRs@{e7GHwlp_Yu& z_}%&s8zx2LB?J4HqVinz*YcklZ%5b9c{@wUW>5GFK&8Y-fG7a92!Q z!B1k>q&fb%2yfpt$(39B@m{2+!ybdC0-D|HGX_cv0Xr|~686i<8bc;POpyxS6ju3t z&zHjrT;d)Z6dMG>u#vwhTT~2ZWX2#^n$`Wo4QsUQq#mv@R8+;`R`Dg(M>aN4<_?3~ z$|T@Og47t3D4BYMZTQj}7MP)Wh=Pd%ueSnOP9S0Y81D@^k;PNrIC{jG!Syk~B- zM>EgHet9iBxKja5y2^VOZP*hgYh3TH)wm!%QW9iwM@00T0t|d-n1iKZ74k;GN@MV2 zWSlj)RXVrTs@*mNT`4Fcc+@Y2$ZD(*AL?U)o7qTpDW~>9@k)LH#gJ0~3aP^|p+nN5 z&LKRa0iCw~CzGnn0k-kE)pm^R#wgJ@eqFn0*Fw0KHb+^j0953Z$7g zvoTT2pp^AO?vA=4)pwDjVrCOHk?i{%tK3%z?*V-wzx_b{2{bpPN7OR5EgB3{w=#-H*q2i`kju zd8&hIvVg_|8U0eZpJ%4$;arxY)LUI;M z8iZQ@k<6W(nGZvh;!SxnfS z&z%bJhfjMObM|IB7$Lu<5;Kk#*4uYu=n#SY9~F(1Tl=hql*kuUq?#5&4g1l;+xg4r z)eXsdxRhjd*9)hHq&c=J_?T%edD_g2f`t zS&faohNb|i@mpOG&uH3Eu_?8<*r(rPCCwf|DFJyQ;A)lIW(u7!P#4up~s4!L{oPQs}QOYL67ITmOYrl zJvnW~KSTwhsHT=oR5Q|5XVrHwAxaPe>Pal0&XZYCVb&ldH>#%EM7PM{p15k7{FYeG zSile!1I^Y6(-rHO+Z8fPYZTD9S39W7piD%M^mbYZeO7~~CBJ|@43^{|;x4Y!UB6Gm z;R?nQAhPjlCd+yw60}7Mh-U9X2!?mky~dO*nBLqegH_`$YVblSde93xwHKz!gqA46BA!v~l24rM} z!2l!^%p~DFjua{J#+h(8d?z$Q)CnaOb^+t#sX+>7sNC&JKQiS@x?Rt*|!J6jxZOAnwmTLk+54RrmZy(BQp}IW6u;$^9G|-CjNy(=%^_eZ-K1 zhLmRQ#xKhS$AiH#wUDOGqs3Y?aaS*7y(d*FOQF9QF&#hFME8s&0%9b3c1T7{Z*>Z1 zAGk~rzP^Ag%}90OTcs$w?r>M@|6s3s$@;#wnkv-44)RDL`I8}VF3s6ml! zCeqq1B<*KLoabvWo=+=(havs1UyyylI85sPe2l=w5&;OB`4*hm<7zw1v|O3gR}8q4 zoh zIsY*kwwVPA2GUV7)}`OwzB+0@%naX!jhBPSaKz*i+wDfAPqDnecY2N^=>{NK*;V)^ z^bmFkGK`Ypt1geBEB7y+_=}+ppNVD=MC$gxqy#rL6B=B>EHljQyV?YFIUF-2l^P;| zXY?JUvRPeb3y)PY)7m8mF$Qfwv+mZGy!2<`&oZ>dHQ6`;L!=K_@}*vN#`1L zc2mZCGrs`;!mW*-ARXr1&Wz51{3Sp5WlE6c6q)jLXb$++7MrOlh|L`TPF$@SiTfFP zFYklKJ|@EQoD1558^{4W{B`;xvBf+LJNdCefE&mNP535kTMgGS;P93i8u|($=ibE9|iAIvDCm#Y^;{F8KKC4vVuB{C4#9dJrn} zopFEW!@`}_?{g(&#}+l#^G$YQZ32;ViE(f?(FmVsGX86L!DJpb*EHOf%{mv}+AwiD z5IvmyRT1$IeWDgW60&?&2SvR?yh>dBC&YW0Y9`Xs;pxt1I3JsGnx--Jb;??ReLjRg zo*FJ{ybu&(%E}RtctCm?Z(KO~d&3GB;gT9uMibK;Qrq??9-Gi?!Rh0~85tYH2b4_M zh*~!W)%GX+OzfiJ8S6sywwi$Ot*(%Dm`DIwie`5F(c#7BUR37PbaJI_^Qy)5*P|aq z4F}Ov!2SYBSKDEZBgRJ&8&S?)Ws}Zw(P95US}Q&QLL@W7r2=C$d`$B1u|&&C(idsH zSBfMucoYjEEzbUF+KFwl>A<@kn!`7KKy>0#<5&B7?9Gp{1OgE6)Fp!$gJpot@C8Rr zwbkILc`{~BdrB{roAJ9x<1PxwvlsI7;@z6ogpXSh@W?w z?U8U79s@fXidDc$X_z^r9*Mu$!jRZRGck1Q*dhQQs2E>~&c62CeUrC@*T4>F&kiQB zIs&dBGJ8mvy)SL|)PLw?I0gRX4AtCX{_Pe0g4Bj((JqwM&S%yx#@3F5=p2{4OQ#&V zs0XkaHSZ*wa+P4-wOWgGA^q;?{OBU#0PldjnP__DtsV%uXAtjGr&e1W%y69u+xAL~ zNCSsP5_qyZ`UKzka$u?DOG#+iT6e=9pv6 zIR>qVbMg9tYZtrBrT#p=&eJj1RG`+SbPK#A5}q`t!q!*grmGY?_|X<8`0B$GcJoEonF zpn!xZY*U9n8)F{2&CIUk{#o>U=$02EZFpft0m3pu`=o$gSs(O}#Z`-u8}1R#SAYOAZE_3ChYh5>c-S_6?CQ|%Wp3vW zLISF{bn8yRbr*C{hicniS(EkV%s%-Ukfq6CYtZ$&DeFE#>u$sQ051phEz>?l*LM_E zrdXfGi5ZuLlX$(8_vv{tDfipkG{ngsL8F+SfAlS=C1((7#hprmGP3(E4xq6jaPM<@)4 z6M*k=xPY~egw^hQDFW(^*rsuoMZ#wGC3%oym64{6MZ)rAdw7(IOml_}4V4Xnz`#nw z(!e72PWFB!NyAjf;^_0HV=x5^uLae>{Rh=#%x*X=4x~~IfD>W#|M%MoIhq(an@HH2 z+Wm`Wib~Y7Ll!_C`2=ljoLI@wq;Cps!ceEHc(BDu0F+t;tbh#&Z6}+kqo=HzVnu$C z_`(y&?+3>4J?BN5H5Uf+OG~6Ob36U%;k?@h_51VZ9XvP42at(6e%3@Y^3VlvL59eY zt8x=;3OtI-wo4W=pmw0p5E&sZ;xE;4F7ZTh&3l{(oFf|G7NDpEisp^4}80(G3GJWDbEmI2`l~rb|i>+WDY-r;efvLt4-{BhJiS!t> z4j3UxqlE7KTS`38c}cQm2z85xc#r)Rv;E`@L#eL4V}3rE6_1+)9iImyQ>N6&jq;;53%1*#`dVkOjpFej~Ud ziO%IibwMUsl2vi?HZ>!$HQMb4r%|`6n9h0=&9rz(OsOgCG4M2yGJUm*(75Y0>v?AE z-ZugW#%4na`D<5f!W`O+mI6PV2XW+nTnkBLhEjNr&VnP~du8O&KY-qovqlv=543`0FeQpjfKYP>nr9)2w zdB6#KikTCC*TFdyEvYX*jgCY#q-q~JnV!r~xid}`p$KfFjE_kNYT054}|fq}{Ne+Q+gfs?b4wSkk<|BK5cg>}gR zenegrDoZQ&acM3@^8$?XK^1>3MNlCs8}!-Sncf*rB221awAx>OT0 z)0s?Wua(Zf9JxykBkVE57bU$Xtib1+@b^oXTdIZEqSIT-x7wWJ?}_Z=3-Mp$;E58s zrxT38WmoELH=?f<@rWbgL(9Vj)IYr%qlpammc9Fr5V=|LjKHR97?=JGMFkVoVx4>K zl(AfX!ZHG>b;L8!*s?Tu?1)cPh{e`e;pdlu)O)yC9p@nyT7~n(m~IN}kAp?Z za1B8J!0GpJu#AiRUO(O64yp3n!rA1ENr#Tfth(=Pgq7E0d(xR=2)YbUnN4b(>3W1m z3cH=dKpgaBQtJ+sK=bZTO^(3u8%&~Sz^Jf!Q9N^Zbn!bWgY+F8{JeEjrLIwr^=Es7H5%61#b zA(!foW?jC_h~pwulf;W+xsZ)svwQA-7uS}5vZZHJQW_=;@&JU?yS@aXSROinior{) z>HK7nP2$!SK)I&49^}(e{>t%A4OS7*`mjKJ_98T2;%j2Taqqk>d*{@WagbG_fEqX0Q!UgA6z)XZ>RsT9yI;e+qFVR}MqUTMV1{}!{KOn$@-U=^X*rGX4#UM!>I5YL&1yCQat1q%sHa6U$b2C377~m88_Sg3$nhsO zV|X<^Q5sGyFB{HM%uZ?PkK$db@~g2iuZS`_FvJgX`;L>IKtzKD763p78g5~;WPji} zw0GM?#JS?GVPc(po?u{;=)(cds?(|TEa|zhcAHowe_YV08C!BxCP(x)ersW+bFxUa zDyw!%P5Vx%0toSiHb4)}$fwR@Ke`MRn~N_5(iqz}8)(ig(P76CunNhpLHs;%PmC?c zgu5vMaZvf8;u)l~(8j!TrB41FjiBdl%84UJ^Rh_Pk z#>TO<5Tv*dDM_$r&(^YR_e95;FY3eQ-0ws#>K5JBRl^h%4h#$c3VX`LwPBm|VsZHQ3`B&-z`!UuybeIF%+7!Sjq1Eni`M`^TwF ztGI5az3j1-URsn?I#`R=k7{Ez|2hB!pTbSRye&)cttH9qZuUsysmuL;tVDhqfP5yZ zco^=9L5U%=D*npLvS)KicL+nItmKGw$W9><-W-!o;2lLJ8m=eB3iUGD&q(t<&X@H0y71gn>`a^;H)S)4XPw zI}k?n(I5-Ln;DFI@n2+ym&0!5A3uAo~*(_mF4mS0M$stR@>u8s@1xLUR}@h672m_4)XH$@=nxkJkhdx z%a!#Kp16SdDtl~j0uLKQbqaYps-{tkaBH#KDdOx<*I{t8oYU`C|Lm)laO4T-qqMsi z+q?NjfnySu4KK3?yZOCR$-w) z*dsC>pL`f)(K#JTEC0=Itq^akeyV`m&~Eu9B__(-(ET=FA7e?8F9K9Ptkg5wnymg1kTdWhInn zwC_uFmvF*gQom)Avx?ASgx=FMX(tkAk-p$|dERmPYRJpvihxqx( z>Ln>oe4V()F}GwKfKFs?VKcL>8ql`F@0Kj8LE3dO>=t-o$2&^e)hidKzP3x^!RTm_ zM(Y6Te}TS~=?(KG=a5IZqbh&?1G`FR3j59ghu6)4_xBY42KHFETiBBPcQ?_$pih>Uyw_)i|DGn1U#9zE-CKF9BO z3pngwo%f=9HKp2hWIL&o#nXv(u(){{S6zBD8LDRaEF{+L7hLgz_@9{_>l$f0Tw^$@ zZ3Z{83wJq0=9fUyA?G~SIIN(YeYUFd{O?oo5?o5rN*}htFRP68@y@`{?lQnNsoUps z@SUJ5zR}$1g8x!ZeE36Peeszkrg4-qK*A9MWXeq!25;dTJmQ-D6 zK-$jZK(`z-UMP)OjoezIzB4;&f#pP5H|Ri~(5Q8Pv-#*#ihU&Z8-9UlGYe#C_fY^Z zsp8NLQhO@60q%UlA*3Mqrp!(xMD*Keq*&BNjaTjJdaGm zZwa70G@q3k5bFDaZ+sFZEvi`nf-^9uSb6#Ap~T0NI+Ye~XaYT5J&f`|Y`yaxwsk`-F>?R}$5ZAhu`#f%9lH3pez#~q8RH0C^eCYW zY_8q_(hM~*dO|eHTBAim?_>Ru>QT)y8s@MO=3?%y`&ZkB0P3ou7p?VUF@+ICV2%as zf~=tjqrc*s`vB2Eg5}dbS9ho>no&XHkO%1|{l0{!+azlOO){nnY506co;Be(7B$i` z1B{~e9lz-CWGkiE-7dQ|7SN58D~VCtiG(t6Us~=v@z+!kYH72U{Z#0Q++JPoEJfq2 znJN^nX~MGd6cB1j<+|E=(uYL3EfAMmn<1a()CYkDjo#@__!Lq!*oNpfVyo24)w~Ts>f#AGMrHNmUvL^fDq=TVwQqyC5$epf_EFF;BOQ68 z8DXVy=@jkvF*ykNv5?|OIeWvTs}YX&9M=mPQAp8qNT{oFJSK-}L`Knyc}Hnl4k}j6 z6sh0;L$&Z2liN#T7gKip$>T56pXbuyB~=L_yK!forER~lOExuP-+AAnc-3Hbut)mh zeCf&~lb>^U*q1e|+PzvJ=TvEpV%XpfzSOl(pLv_hAKY*lH_iNBL-v_Tk0c1L)Nw$` zI_%;_{JwB=twCf{a@)0NE&cgdrXk&I;S^Mq?c<^A%l5{WCm|KE6f_YsX65$!NgK(Q z1K~KGugsro>X(*iD@amDm-1D*flzZlV^I)1AcA;6-vt*L1FaqwKkNKxe>?AGWy_b4 zFP=h!GgM3qB9xL)m{dbJZ9dJkmf?03<;miivhtoP%xpPNio;_!mwBEkJdEHdE;b(Y z)h&iLIx(mF`K?=(BXrFe&Kn16LmAxVX5#I4(hnK z`LMTfR4i24ZY=-Y5jtKqNcnt<Roz$zwy4{(`UisESwMo}BZJl}8o+yjM`2%4JA>2Ju{D8h7wJ zft2P29%Cp>>;Z?$h^`zddYJ+MZM7?1fG zf>(LJrP|0C=GZ4J2}$n&6{F<3@%0%DrLC!ZMxIo9?&3-B%0w>i&#V|?S& z%~!+oV5YanaLeec9ca<%ilgc8i-c@N5YwEq#{=q)KXSu7pBp~n0rTStc|;yPt|8}C z*;zaKSUmOkhESJ~RhMK~O1f`i;}b@9hZR#;8s(fuA-n&a2jJJY`prGTY?`#w-|z0@ z$HijKp3RwiRs|p0mPxz{mn?dbMJb8Q`twE3P;g$fIJ(`DH$mF4U9{YHo`{Ix7mN37 zrwUU>6`rT*8^!RfNu>*tKjJvv;Z60a{%(i|ldhd&dfVh5Klo8oJS4h?N4v!IygR%c zQEdrj_*#Ffy!z8rYttz##;Ps;tO!CBLCYcC5p!pSY^8=QbyF5yxHIRfcJgCfg9A&w zXmkDbn^ovBN@EdDXDEu>-28n3))ql$APOio3200k)~n8w87js+aVUQcDRGD9+igvj zcku>M)*NEe4)wfay zB={nD4<)2p#K0YA+O`#Lby8U-1=tk{>;xB#~3djciJ0|EqAd#Y-i}Qa< ztVJoWE8(bMer6db1lOwD=0#~%hLi51!>BXv1RH7*eMQxb&0iWgLPSrN+1PaMWjFJ7 z8CK)ok3hIxi$;%B9){F&cE&a9+#bI1eIcma)=;FZwIpzTx^U~hd-FYh(%JevucG~u z)!I9249$KzN&b*&F-iK()z^fT)3Op%^-j3^1O_cK&ooYNMLfjinB^URc)J6C9aP0seQSxcX73K5@yX22&lkI}c_ip~Ge zAgT~UcIv!*6eto!sX^&OXLz*%Sx8$0!}vFZu{V6&BoZz0tB*G- z!|{;l@M8H{t9!zpSMMRZa}^ZWm;;W3s%K* z%dyRXlh`onJNDBUue`%sh<0F{(`dkacm zg~;Y=c%W#grQ`PN4^ssYTy*RuOvM~9V5#Pa(?0Rx!4y331e>Gfa*+3!=;f1)T~&m8 zGQmBR*r1mLhf6pQIT$J{)$;@fT+T2{UewhvgzVlw#Yx{qrSyxeAWOACShv9tq4Qx6 z8w%xg$ZDLN!q*{kn1`@l;!~Jt7*(~iQCwFQIomATzV)*@hqI;8ueEcSjKa~{X!PT+ z;rlK2eoZIKb>mk}X~|#9w~NiT+yDW9^fn_3f@^e}Z}R^pJ2PXOWoQo*eZ|N9hOd?{ zx&Esn)gppw^SqT7?Mz)viDvPJEWN}6OD@=G7nuu7S5&dO9cxR#PSPf(jIHI#yu zosj`Wh3#4%T1Y^;M(6DsJh)27tE#ChXaUx);0b2_FsCAp8Z)o=o_$)rA54e}^;=Tl z{iq73cXV={y~@G`P8)J|6SFZs-%87rS5b7I^z7Cj36GX>_Drm8%>wFy@wa`nLY|)3MJT7)uXahngy5{+KRpg81VOikKwuT0 zNMViUgzCobc=AAUX17ZYKCoVVqRF_n1L!S~eS>Yiqfnj!sXh@v@fcEXga~i#_n*f% z#JYoWLC?&;uD{j2qN&~B@C{!DJwtkYXebGgONYy~6^2RRiEhWD9?k#2SZP>I7C{>vBq|K))G zSFM($_M(QO2Aul<194Cu+*CY6W+5b1Z&IoICMeGWO)J2nDHUSy(>yb8Ot|l|qH6PL z&8Oi}EX4_Rf^%uxnwPiaQ$eohiHVE^Y|%;I^wR6e_o?G)(`|dA>hsSt3ja4>40VGv zSq5HQ7SZ^yz8&>({2VAzq`nSowE ztznJa=PTw4`oL6XskpURq)~3xDd{SIQ$7~I;Mf0ab}cS5YbB0i zmuoQ_YyH@U$r)@RwR|N~^TT&$mlzgcAqP(|&i@`RK(ye27B-R@MxwTXa*|9#Ft8tg zhywD>7BcB!_%Y_YF(^(OUuEO8)<(# z!iVV(1M~?*Le8U|r48B&a%+MGG#hsQ$xUAb`PhW`8oCFq0rbpHQ62_k8^T-X$}khX zy~zqC^NFcoQ$1+IVF9W==pG*sNy0_QYfX)2qo?Z4ws*RV+CYlw`|QvuK-X)P8b5$ThT&QjU$<9MBQ!MPcaZ>xYw3sX>p zSO9Zn$w7Cg19+0M1*38~g;-}|?+>9ljJEfpVXLL)L$ryxRaA=G$N48G}M~A zX5=dy7JF9CH509{%vf)&8+6W&UbD)13;h6(IeLd*FDMaPqI(+;X}Dd{O3yj3O^`@t z1?rkS!F^-oHNYyMT+i?Mj$M}yBJvbDOr$a3_PiBhcM~WLsDd{u(UUV(S6ixsp1@+w z3hMi{X@HRCxN9RM_jq0w#FxtQb|AE6f}D&sg-gJqbQwx-YNiNSO^OZpWphK}%pGe6 zmohw15uWmG;^AnSYE|=DH*83~e_~qhmME|&F-0aJMM;-YMpr|LR4VXx<~CZmjE-Jl zALEM5`;VXn^LD^hcyWcgk3!n#8I=Q~Rc-Q>(|d{ws3iXT`ED1yujG<8M$b3Y!_LLh ztN?mnwDSR+jOtvAeKa2T?;-6p6@49cu~$@v&4wtyN&kS1YOS$F+m3i&$gd!@t#JK5 zxNyYao|nD|$$;Kk)ZWo|QH6^^ggTRI-^(`OE2>~RELSyYODOo>ewN>vaoKzrRLQSoWPLmhC}DP6lwhOmL%N;^kP15&xsTpXoXTXq|@mLySbr z^(0S38i=z%1C_nW?L@mg=+9c^)%?G*-0;wHr-=$UhsV?pblBykJg4Gl^&=WdVr67MdA>?x1$kMX1|e@IIGpg4aNB}r$ZihdCVL_mlsG1CUp$e2=nlt4 zaGqT7X^&*B_SS5pp2B3RP331+6-fW4E@O>3WX!n&Pg4139T5d0rTGU~LudifH0A%2 zrUXq4Y(;D=oPi>l|H&>Y$pDAlFnx<@Xmui1sCm%5SVd`eq!ubZy(;Bjx=9UxVmYw$Ta{h+!MTN&GHKuS^A_DTa zJgbM=NC|Iuk*vzSYWRtd7#6V$e5Ao8)6N%`VFsUU%?}z`Frmk$@I(!xmD0r!XW{wX z^E~l*fMjBrOO-7&52`}O6?Rp=>+hYK_`qMuIIskNLT3Ap91DKZka@e0GP@s%lfp(k z_(2s7_sUWvTdnDjLb`U*a>eI4*HHs9LB*NqbgbhH>S?D;g`;Va)Mph!0VFVjlx%%siYlSN90K$amJ#fI}~wD*1bI16cTcw zuL8ZUjFHWkn!cl5e?jos7$F}2$@0k$vDs6mOa;ol}x+5P82_RwY|R;ibxFc~t^tQD4l)YMx0+kRx|9`3I8GK8(2c?9;~$FE!N`}5Y!tSF z16}+tAJ35PyHOar?t5VqZmy(a&1|lH2K72$SW3DviU4o zqer(##`)$LbkpPzQxU~UK(We^S~MtsJnF=H@OAO~!v{qRjS>xgtB>kuP9Iqe`Iw@3 z(2umdt-eD3^`EF@x9v$%g?Q_Yj+-DEZ_x;a(OU~SxZ?O%coM}zP|zFmDfn1?3+(Zn zF89XqpPnHhUL)X_xaQ8pHb*p@lN=EBU$GiG>6!4uYiPqx z4h1L8OySIm8A$DobxK*8Ro23YzyIDi#*xao*J{BXuFnZ(W%A`}%SUDDR4Sh0w*RqU zI!<`k9GAux#pA<`>vMj;Oqrd|V`hxE+yoR@Equv^SSsL0k9Heo1sOIsu7a|2t^V!X ziB=qmZG(;9|J~x9p~6Q-1-uKS>Lq|L$-z|mNXJR}bt}XdO{{ONyGxl4+jY3{2*|-tBOcl5q=;vz%BV4$>sK1cG(_9aU4=nG`s< zf$U%w?py;I6^jM?VUz|bYnPkx$>l-lE|vr~TyQfJz1)5d{3AZqv)qoTx}gFqH<0zz z>AQR6Er|MOd>$eV@2j)N%lZ?Gs8!E83J>o@9|kL&%3~FPYF;zDX#_yRSmlIJ498CR zK$Llkc&K~1V5gmtoa<0tO)%NE^0_HRppKSZ`*4!6tKs2k0#^1bW$Wrck@#`?m*lsO%(gy(rkqt zyY5F*cRs-@h>- zHc&#Uj>0EYt68yD$Cmt4A0ixeKf5Yv{gKr&qMa-wc-hIdYS0!pyO3+f{g{i`pG2V> z;j{r(&tdsC+SaNwpYw1fxW00!7@CVV65<|!N`hrF(J5bicI1zyLUmlD0)grsQ^nq{ z>-FLvezhMG55=z3{Q8V_Hg;68uQE#g7A7X>p5*4F&>|(O_p#YIQ`1-NF<`DfD0e7) z%iQcqH7vE@pvHKaEx5rOj94A3xty6Yhj+eSHgU6TucFy{q{T8(P2rx!9Baap>`4E+ z5~-hl<-uD3?Oif=dnD}Bf$!FIbi1@Qdb^(e*HN&7$J@31!RdrYN9@vFLA%Xaf`^eX zpD{#gGNW>`Pd$~w0?zVa1I-j4MNR$@^noM0ZwY!$J6i=<&*Ijip@Ho;7>vfgBt~yfZLG;HDkpZE@( zbtqWB8=^uCbWTQ5531W79 zNgRIOO@neoK{5gYY0l}k4ta$=q2S@?1_s=d)9Le5*rNAFaBI-#Vk$OX%y0+vI3zyM z$gkN8uic0~0$)E5w)}Qcd$8mdxP8;z(*&dhMSm7Yt0kwkEhQ`x0Wh-cKkVY-h-F}> znN%VJRU-Apz<+4Mp=bl3=jU>OR(Zr@HM0%~M@nZ-CWFNMY+s+?Qe=z>Rcs{#aiGzOmf&)ym z|E{a{FUC{E)x^=m+1$d`>~G1oN@YS3C{4gC6YI~|iKYM>03$7~f3V9ON)#YU{=8$L zQ3)snwUJ@^HOY^)O!oo9ZtFr!Sai6SbAzzBp1>FjdD6dVJn!?iSy!$0qdsRa@2_-wl-k;1tsS=>WrczX*Zp zV_=&G3#UXx-)RBxn4%D3-pu5)N~`W5(%xN_?T`K1ZgRBzATskkckt|M!c}@`HN(ay z0e{8Vi6kbRxw1kG8Nf6Cl4&r~k4`?o-$o(q4-p`blJ@wUX*9F5vXzm%H>B)6-jX0z z`f^*!B#O~5X{i!{Dp4IvaM#yj89DXW$o*7sq1Nnx1laFYsqd6%Iwz(lv{K(~xV8Pp z8_?yvCQvV^I0j}-O_`XJUF1iDR7ET=lq8#l8|M*+HH4M#b5rt)yk!Ik9{SK~+G-fE zhCQ@7qJ6cE&8r9%8N^-gtbfo$R8^A1{L+oRzfA{gW?&H}J*o|Wx6IA8i&v-JE5W5+ zVk%XBM}1u=2sbbwq>Q!1L3&irgD@Dx7~@5CWS^7wR!ci{)a^>QgX~bi3 z!qHv--iZ+2Cetkn2pXt!%O3PpvcqHxJKV?~u{F+_So-2FWmibVH;(99f|VfCM)_3S zru?YRgHk*^ur_g{rI!1GICvReE(fAqcN}@S%e?a!HrW!vg}9YvH}e>g;eBq7rwf_T zuFnTz{OzGH0~oNsiBv=ELKp7xq@yHLiSOx=}Z%qbO=zpwL|r)FAJ0RXw0TxgM|1<8DwUe{| zuMU2fm>Hle4&rdn>Yr6t9h)l1I9(ohc?7s@H2UCx+D6EtrweQ=NomRYq*wK9Fa*Az z2&A&*%MhmB^gWXd30FBY^k0Z^fqwDjBJRjb{U?f*o$H-pWf@h|)ryFDJ&84nm=+j@ zs&pzUCFY3HZY)LSNbPe`h6H&&1y$8{&{2009?|gaSm~osQ?DA3{k1Ecf6^m{FBOm= zf-4Hsq-sno7KNmPbn~jxtMw!gKP6nReswFN;L*QiHI2ta!3uz967AM?!hfc7xFh@m zbq!#R|8)rYxV1`h;xPS5c+O{)Q_w{!_p8#b4Ws?Tf*-T+TK~BowHU?dC|@vU}=^BN7sdb0f$Y z0Rcc8p)j}lW>Dr3rle`R<5giY0aG$Ey<+q4le4Uy<6WUuc4p zO({)pBuR?`xeTu5ND?(im^_?og|4mpW=)|#Xg^AbA?f8Rxfr^xE)KJ7weaT2P>Q`ZklG#+` z3C#mie|Ojj7O~|Q1NgtqTUzWJGY8F?q%?Hwp2+QD+*|STiuGkLEX@2t^%Gv_?g$Ht z56Ay8IkA;?y!FQ8b>0M-tCbm$kQ9JGiZ@_Mxe`#}dW`p1 z=u8>zaL+;I^{n0njWt4mo5Kk7@0{<1qD|_Yw134qy~a?4kdFX{te+KF51Goa`8T89ZpLVf-j08 z=OL=>j|KS=spA^rV0kwh*_6EBlp;reE5U|MINe%r3dPwoh;p70eOLJ|H6Zc#t*H)L zrN4(tU&@Wk@^}}zMo(C!iQ!&LOR!qXbhMWqrg|uR^_)L>K=bjUTkB?VAkLgXumFZ^ z!@x%G)Tp+J{yoVw?m*y{np*u$3UxnXLOIl15_^_LIWb-dCtBOmZ_wanuL!UxA}PWrS5JBDVZp1-Rxy_ZhPBN^T`v3Q=&Na4k*0KD8MsU7eH5k5l+s`Z8i6k3lk_ zvzFG#q=~{T$M7D?#%P}&H5%F?BpxWr)EGI>6X3?RbL^~D;PSD@#{@g%PSzd64BJs! zzKJ@Zmr6%w${gl%V6+n0_Ki8gJyP!R`h~6@gDH%65-lO^z(`wRL4{REZK1_d^Zg-b z8{V;9pzbJ46izB}iX&Wo*e!9NQ1zM@PQC~ePc`+9>(@2ti+l%x0}kl-9FVcE zmhr@x#CrR!!iG~uAZmMh#n@Cs85$3pML>Y_aF>=O%mH zOAjb;a>WAp=@b6X=jPu=#at98Y!~=Zc@xBJq|G(iedMvl^MVWE7)d7x*#yLs<^z-$ z!8^jZWwgm$9dN;<_&~e!aM%P4`yj6sLYZa3Xk&w~vf5&tW^lI&e)RZ2&hjhi^D2k2 z^E|v~!?$mF;C6lPbg{Tv%>*E-b0l09mYA&E={nCO=BSUtSpO-hpl!O8{G7VuC#PzT z#jsZ_1o$JSdLai1+$s}lRpDXi@23ai;`(dPBLF~fvR0Kfty8*drcwMIo9;rCDrH$E zJRqq~#mKAHx_j3uD}%xPhq5KJDfK2epuB8oLoz#+t8@aS1FJx^X*kt|C32tD=KI5c zisTA$%7YY9{}u}qF#W`~rIaN*jivPCls%u(OMxqGDye!!|^N)`i1vUfj^)T?y?1Q>=$33+PJefeu%h|evq>zTJ)Fcf(_XiKJzwM1yDEII_&WVj|4R$alka03t7UX8K5+F0YSwr~?ks~R@#k$rsqRqa8nZM`O=Q66E{&ldyWsRH_Hf_L-Uo)v<2!1+<@NMutE=bD z>uIXz^WzcnC);~(?c9OwiUgo3F)s!{ZewN1<*mr`p%06Ou|#dTB0r_ROSKifbRK6j9#`cFQW32-K zZw^Eh=`OsetlBnhM8#=x$Cdlg^}>94w6_jrGb@nzV>56BvR%}ZXs+*433eUEz_}d2 zSZ+cwMuwX6Ohj^?tH^#TE5n$) zr!c$A6CV=A~dhG&O%&(l?_ZGG78oo)y>2i_8dFoR!~(wP^RCRd7$_W@n9sm zA7b;U)zWg~u^^hF&O_2IbWDVO%|*^=tJv&HE!-8!kGC1T4h;@wysjOV??Ru#b;PB= zg7Sc7LhxNpp&2}tFB2z_{QR*Pa!J|e7poyAPZ74*Z)MMb4BMx~Ve;TQg6{xJgjQL% zGwF#crE?PFFE)*d9ex{4F3d}pNfv5|RV!2SL{V5&cc3N|C6&g2G(r5a0v5|MBh-sk zp7J|tI`_>|eOfB;8ptl8^&^sX5(FEj=w=f`gdK*lxdiHgN5NH8`Cmvp*oCy>y@&8_ z`==7NR=OZ6FX@QRJkbS2?MB%`gCyTcRid~9dO^zK#4y@}#SjM4O(uMC)oQ1uZo!0v z{7LS@@%WVml8#Y~R^)rdGAF;tD&`bIVUTij@Q&eumvrjy!Tib<)XywNi8DH4#X2(u zkGZQ?C8_s9HUrb|-`{T>@KT;?vW}N<*so>ah$so_;{>RrPpPC#ETTn*GIyb2l$ryS zAxIknj7tO0Ifd1Z?xbl`l^Uo}@Ah`daYWo4Ni|FR2eRWE1m*1&z_9yBVG{LZD*z1_ zl{DE)2H+?RB02S#-qNyNi9b3%HclfMfD>tJk_l)QAtv?rfnYH@G@v zQi{to84F}aohca`$*afCO&BMlQ=~5T8_m_>6+afbbYb_nbn~+_Svix~bbJDie|8G8 z%enHJ?Xp^W6$V-*{yI7tha#yyGynP}{fV5GyI9s9+%7^FrH>m{tG<{~>Q`e?FUrvp9q1iVKD)%-`860!toy_ zL}DSg>1f<&e?MZ0x7Wp(13I4r)0jHf}o^^ioqs48+k`N1p~q(@TB*0DKtKKze2mgmB9uN`K|Qk zGBK;Pn99eacgVLbD@$&cS-8a1`Ce;mvWJAGm`iD2@DRwuHTS{{(Q^hKkCOH3?#!63 zcX2$cpCac%$)HuK2lStlx2T~pIrwJ+SAGhuL=FJ?8BHdwhrG}&{`L3ZdM%0^F{^wg zo(SG=Q-1wV-(0u4TcY-`4C(Rn{JwUlX9}o=5Nsw|(0^S>oBr}C6B(*vg|CIuz%fhE z9w_vwFJtnC%Z2Rba3YpCKMBhvM9X{vrw|?|JcoA=o#8uEEVp*Au;#`tKLj1rnDT+G-lPnI;SjGa1=n|LlCGNB3>Q7g;j6v}1GggpV73P*NfX_@?v zXGPnMfWVwue7Gm95UQKggJ-1^I<@ba?}AQGFAjGxjNeK1`Lz2WjTtisQ3SOM2U8Fl zeq3;|UD)!0DvE3;k<4{jw-{$2(Fu*_L9>Jy5Nkr|&=5j5)YZz*T^htFDOfy%Qjan= z2qiP9u*wtSW+!&+KrAry;f|g|BR*+}{5XZXl#DEqv&Y<~8m9H^4XrRYxeK-PZN6G; znJo;VGCf4F{`Hm)FesqUX)9xVn^hS=uq~xeFeoOBn2#Xd`%ha0pUElR79dK*0w#Ov z{{<~7nwSb(IN2LG8=3#trLIlP6nq~)s%VdtOKFZc4NWC<#x$t^JjuD6K&iTVNj$oCPH`p@DH0^L%AK5|L*MPWUD~L!G*l87S4c4*ZsCXS3~5? zXPYdAX6B2^#6k8nyx2>|MXEUEQ)Mj(jSki9kxnCs#wr9S6kL^Ik=_CJ2=@2f3?lx9 z&JBEbP9S3bH(IVLw#Ft#)&`Cy#>(c7c5ViS)+QqEf5{aC&7%I5vXkUxOhlatM#q4om)*nkv4Q#20AUN*atxoPsRQ3}h5V81%cFH%L z0ED`Cel|&~Z=YBNt?2=(v^?mcf0e-~Z+yR4-ULJHh7~oGuw#FPr#Y}ORv@JgJl#w{2RRiQ(C4~ckX>-qvO#|e>u?8b~G+5DKY5{A7B;aqF#{?>ko^Dt`|tMUsA%4B5COzs zy%*+!eFOl0FFy*mGJ`Uh!b&g7Ja}ESBo6bM%MpwUL1%h>Vb4lbEj}6Lp!1kjl z3w*;qwsjFfeP^N&5;*Y^f>RHaD)Y^gkw}GRs(vkRY#KG%GOU02IEaX~4E0gy9CN%h zsSej=Tb^Ncf|cckG?a;$5%7y^%;<=6P68o4p+%S7{fk|OoXVs6?9Vud72($}w*Sfh z^Djf5WYx3(l~oD|;7>){H{6m%l7f91F_du7hCjRr{`+!vly42|vc(B4dN55tWIBrO zI;BK&o_MRZ$hu=hI+ckf+^%aFPW=_xJvLl7r0YJ zT&>E-Qd}zAaoJD!L-=j2qVj{aQi8cFf?#9G?sWK}880q%^GqyYx5sOTM`VN9a@I=* zdHMx8evO_F7nmgpN^ce%p9ZPUrkM4d>7n&MIpYk7k%2AzxJMp@E^47H)SaNITpJ-# zn?>iLTSK&TIGp2cp*=ugASOQyktB!-qn*hE!z(X1typt-B;k_U;;%a+7@>{W$pXP+ znf6eBD&UGLOTxM9^1=PqPfiCRp`EA1zY%^%u^RG*fFY$A0Zhdb36%pJtI9!9o|R({ z?~0qp;jTQEPVa20HgQ7Hvx4q37Sw9ACZ3x|5Jts;YvL7KcT^DZklzDEOg7$!jYhA* zA6(`t*`1cCh86D+j8qA_dLwqg$Gd&r?IyT=CSScO)nQZ?ok*Ed|59VJ?p(eO}&yU!WrVzuR z>?X{qcV@L&)A15{Y$|WF(2kMSd?Kc-sjjIOB#{H`IoL)YAXGzBuix1Qb4W7?)R503 zyCb8CXsGRXLTb(DXTmwoqp#x*)t_J?aNIyB%HQq583NrEqJvcEEOrz=PFHjuU7#yJ zfwB}xEbt|oTS1jO?Q272sRM1TluScKs>`@pWy00>5~~m(Nt=kwekBxW#T^z!-qaau z!|POYz%8t+?lPA#I~s4JJk_F@NyI%IxeEuw86Y*z2@y7zYb$yeBB+C;cXqL)%H+dktOKe^p^Yghc^iI`{H1h#j$!8ZxW90Afieu zgK$XUOE?qn#BGpz;{8W?-SKT!z-Q&_WoziedXm+g@#ozM1X6+no_An6SA7yY!1gW? zK{qBYF4Y|~*VP|>P9-^F1e8DW?RL-U$q?0G^#a^nSq&iv9+jcH`BSic4Hp9qaBma) zCa11E6qY?ur8de&&e<92T`44=RZR3{B&-{UKM%J}YsFq+vWS(TZrXsI(MsR>DUwg& zvHb$0-U5yfl}!Y1(TgWUJ6sL+A)i>@FwEsl_@JRz)Y*w3i^%Rv>ISY#jvqf_AIrSh zXpKSL+ZC{{s6X-S@euaW4a`eehU0_&yaYI1IYrQtH#3nwicLa?-5*W(JO$n;GmyM) zTSLEd-IEloW^ft6sL#m!-OKH*|X3{^0TyF}Ek zz=qiCP?h%B%j5=IvJ?7U-C@as&AjvL^Y;WW$aY13ovF7lK3IpMb1hMbOJc1}GzAaN zLONrR1h>SG;#JDLAxEg z@6ot}&9!MDHH5l?LT6f#Z*9!6y)iUv4>sKfUI=KqNUX3j$@nh*1YBX``--6ouEb-W zY)8e&Q8f{wTafp5fl&U1Fd3;Nu43J!Q|$#kJCXNsS{xLRd{Lr8ve4`|eR($et$SS- zy)~B@2*=o zQA|a1pz7xT;JUAVeok@H`cU*I1Q>w}43Ku8xF+p{7ZBK@9YnSunkf0 zel8ebl|R1+4*oE^2X65Uebz8r^@;ui4LfYIYqEI3Dc4$qTLgqVh@x9ePR>cN?e7J( z0P$GKD5;VMpdA4)=4#2d9vy7v;^@WQ6=L@Bs`ViEVEwA3^q_JJ?O1u`{<8i`;$U&8 z)WL2QiX}!K_r*i!ppn|WXx94fJy*$>gBO79wg3%{vJ~MD^WXIP-|qlFrd&tN2}N3p zACI;>+R$GI&*2sjG(xKK>jXxPIp0Vkb=57`-~Zf2Rm;1v#Q#ix@qYwQH2;Gx;oqCt zY~>wCgdcSQ3_ewrB|4@`09Quj(=<4Gg<@yaxciB6==4vMQbF6dSMOc6Gi z6d;ou#2`p$hiDTg{UFR%xr;6iPpa#JFiS(*#!6Y@DEe^(xFUU8^5<-kuWxyq9DcEr+!?A(fP#0{g@kDiJQrLk9bf;k0iWdyFxp zc{4UV7tv%F;p`otyq?^UikXkK3RvmHl0tXSV_v;7Wi|B!h)Ss7c(&Xd=d~??-d<%H z$u0IW*u{ue`!k4Xj5<$JA?#$}lqceLtKH_|;3?1NS%R zs9_!+oeAS-J91Y;*v58lE$_9`tgC)DFNKS=VdiRz=>yZYX|iOJa?1AUZ6?(OeNN8e z9>%Vk`K2^raB&mZIA3+|K!ZR<@8(!eU-L0}6z-h~x11BSR0mW@59)B?&5LBjg&fIG zn5_}kZYV~N;B*&xh4VA8FN4}pd#+R0+nQy-$t#01YLdicKrV}};rW}edQ;S9z>izj z$rZA0486>~QR%H*`;VeW;TQ8LI!}StcO|MX+A6s4}B-D)n?#qS)yp~ z`uP>wDYP8jdgz&j8;8)&kR4~_y0+FeXZJIii3jZgs7=CcKqx_csk`*Mem%183+L`_ zZCB|UyrDRVC#Vyck_x>zeYzkxR8-Xz3gr;X=I1C)6S22HT%~CvmI3Z#ELk$*9rN-Q z;|^5cC;ySIKamQ;Am)*LWHL ze14kD9Z{i8r}n+XlOe0?I5;3KEI>uOoC4>zKYCSTX6<5a9XA>>rB!=|T1xi6Q_*7F z{V%uyT3OI!Ox{0%|JZA(gzu0-r555uR+|o%WnHkEvqfgfQOV{Fnr5^{J9F-8Utq|x zFMa*Rafv6CunM~tqQZdgNA7DE%Hs5I(8__#e>yjEv;3_#a8H%*Thm9^fmzm}e}B@m z=A}|DG!=MCfI7@rpqfHk;t1J~TZ%T_cjSCq^Lg=p!;+a08xf#&-Hmn1U$5nw7^^;a) zz9okA94M1D1kS9X;u%jeRY!?FE7S^u28%8V{IG1jUIH~^tUe_5>3uC&%a##S zs@!jE)0RA2{LaQLkv-coT0^LjH?-|xc`xZT*RcTi|N`EC8C z1#usUs2PBnWgmfiQjg5X8MSh+$m9)+XO|nteqq|a(Kouo2C_l*qy!S6uZv{s2oCy7 z>0R+;gY*daA^^@*H+^aZ*(&|h2G~L1Tn}Zd3?}B`;%JbUE#P4^=BEe$vc^5!7 zqi~|L2@1qz+5Md6`o%@yY71DAuSwpOz5PN$%cR4-z+`aQTb@}J}ecSoh=L_F1iz0`; zCrM70bZN=HI(uS@IH}KgU3OoS{)P{je@f(V0K6>bvDL>{dF1AEp-Nsm-(u|(a6hKt zV^&JZBt}f~W1&u7Jst8bdn%*CZiZcJ{9)1{~fehV{mI zVllPhCZoxxAkT@ut!jU~r+iL7I2%+p#e9EJr-umOx!}*=8ZY&~J}82GG&v5WvhY0S zYL*F<7HAY3y}5ytCJas$y*>f9_Nd4H2*&$n;mCO2T3_Tb?wJ&m!>s`|t05Vc%cesv z8%AvuDmNT?1&<&c8MlWFYo1qYA%vl_pN5^eqN*utDsQUvQ z%|*xKu1{z0Wp&wq*Jv6m3ql`}FA}xuvqZ4$cn~=L)o4|>w^z+^1vQMkAPC^9>c3@? z!^Ch&IG^5F0(?y#{cf?`mWjDkBZ^<=iip6AGbg}O-VdELd-a#`ch*Q@Rk6G5&C?@$ zSB=W$B|vGVy1GEUekKL}L0>a62X6uZDNn?lrPF-M#IF+i0WIkij3!saZHB}Z+EePF zmu+f-YRou1oMFTBL$S(M@#MbCd~D%2c}uF)EXVS0Lry`=6@0Q5Iu3$7$F-K|wFrnO zCFp*BnqQcZzqJ%Z8}N>L21#}SE4sIm{w#NV%PAj62ciV|(^Bwyi+4+t^Zq=p<4|H6 zKtb-5jYYw95y2d;pz6CWW@E+$GbxzZQZ54Ua$MMR_x7{&XP`9}6n3&#Lvw~4&#(V- zSxV}RqnmeLsx+>P;ehXFy2;1;MA9_56_ZccZlRATG?wfgHY9MzuvZ2cQhA6`dd5oikp)*mPgU-e=c3yE8jmue{lKb z?x9Km2$Cs$EOatICG}QcoE2S1zELQUltxTdf*<78H`tVX;;1V1eE8!c6gwAy%Z{fj zs!VH9FA|#wpf8pkwIK~jcvJedD*x6|23Bhv?No7X2SC;WjJSuvQ8i4J-X6?G%B+}? z-dYB-Wj=EhVKJ5}K5D~o>ys{$V$aCT-8b&j21lw(Tk@x;OqCv2ByUESnF^^w`Ofq z2tK&5I+LbDeW<_G{SKx|3VfEL=YIj@F*A z$F1*Z_u%~27ILA7jh7v>jXIn|Y!3mHG>%~I0I|&T=yu=(ynOxzr9k=8g8V|73Xc;m z{17$_h8lZhUk8TjFh+JKQ>~v_st?$5fcQdGo)o5XbwZ|U*whvK;4_akti7qa&olDL zaWy5D^fL1H^m5OpljKm^sd+2ND5E#~a4QaFPRqQISlY}o^}-YquEt~o;Cp;}@DBeq zv&$oUtxp@VK@i`1%ZFn~5bJoZZc069Tla~7r6_c|u#gq};iuX;QV{HC0gN5X#ZS3a1rtk#IBKZV~6 zVySZBJU7q~UQDnFAKn!xgWUhhRaHEPtd(&&ad2l$wSDWgCS{;1Cgk0@Fp_%bew7gu z&=w=$#@Tg?g2*#mb(i!#UzlR(nmrD|n1- zE$IhlCZuly;mqgx2d&mx(l>fc7nIuvtfzM+;~Okc0dB!D^Wu`u-1YY_W{igoVJX%^ z4oI5oL07fvVj7_Dz^}sYn6l*v7crH%Lvm4q=?NU9R({pz0+z<7rV?K3Rhgpl-nOWz6R9Y z7P+qvl?ArS^DTGJBtF&6JOzr#Z&T74ARbSwFV(3{TUmg(4j+(LACxY8wpNY4qG>Ze zABo)ex?H9{p_Dq1=u4&WoFtu3xTy$~Z5(4(KBnk59pF`Oha1E^)uqMmR2SVUS_>UW zgf63;ofdZ5vCeJzmFb~8rqE^|y#M?Lq3vN{TliVgME|@)sQ+&RhX3p&{-G`S4`Oq4 z!vEr%g?ulBbl5{f=TisIE8sP`5G*Mf1P18I%Y&2q2}wK|x+X{+uFks!3~KfTM5^H} zb0O_VC9)LrlMzl`z3}d2Mf!ezeF66V#t8aU%AmUmv8R=nFEeJ1uLqA6wuwQAKcNj7 zM=Q4sg$a{G4|^t%5?Y7c5duWvP$RPX4i00a9zdj?@5(&OUxcZFTc!nsr3$YzdZVc2 z-lx-W9GWvqEu~OCM$f;VIYV>;i}abj+wFIh?^lMMAWN0BK|(ZApo0Nn^OPHc`=F^{b~)}6GnGG5ib>{#vNu5mzt23zti z*0u2!lh(yRb{vasP&9W|r%H&Kl@JQ&s)y8XE>?K;FltOw+jL=>ujf*E+V7T9ERT#C z#p>MbM|jEorCiZc>g5B*iQ?9ww)c*ci}TQ3xAe3+dD@x znE2!oWSJ!Bq)W43;((N;XKxyH^V=K05vpiy5sbZM*P8BHIAkY%BQz2X!$qpV<}BA~6yi#J+<3n1Tec zg2P_Gl@)?$4D}i&km>GsufHD~-t-6AU{#_|QMsJTy_?JNROZ^+8n3VK7eHM!DU{}K zRFh4Ht(F^hlR-@$*Wh;B5rdi5gBRf$!~oIY2!P?ZtMwbJh1S3p_fseEGQ6QW9+ABe zc-B|~&M-~=#e?_&Nhrw^@K$2P0pq#5{eGBa`OJzKieRn>09h_mvU9~@H0Y2d8z!c* zS*0R-;Q=ZJ^hrH`d}>KOx)MT4rLv$XHXfXT5*^N+qzZa-12y($>_l9HF*;73Qk_kO<@|`l?URGQDhl zl^|z$cm7O$d0x+k{Nzy^{8|IR){$ewQ)RnU{g^k>s=Tos+?KMP4r4WpYkfuG-~clCep-xw%hL+I zgPXM1NmKS+Cs8GL;yyFaM0V{UN-DcnVeXMT~D%UA4pgv35;6rjHk5Ij9zpo!2yZkQ| z3C)F0-s}f+W&b10G5&*br=V!yxJd=~%jHWYLp4Zo3ACI4)e(qcbX)r-9 zN(*-^-fMOObAN+NvyE$(rWi(Hu0rVmWzWS+bLdQGWlVu$IWkxn0Q- zl~&dkKWQ*uze8VJYo3~-U6|ysCP96AZqh=8h(9x_S9jwh{51@z;-_dwx5Ew=h$mxJ zK{h|*tof;efE~oj_Wl))o)j}&_d*~FwDesRk1vzHNiLNXwe&@jN6eV&hYY6!VbGYU zpz;00n5cAS1@xHcQ0b=>g1O}Z`J0(J2FVp@>(CoHauvhK>FlZwotVqT8I{;0N6>pC z_YI`PnrV72R-kgjDVTVl;-$z++y_u;rv~XR$N9R#TrdcvTo@{^$o>vCFokQw0>BR+Lk0slSHk`U!OzBI zjxKt^@z%+U%5bMDbom~OD~TVXJ9;M9h+y}dNUlYzo^&EhyV{j7t_l1=U6;+5X#9y; z)x%mb(=MWiyYb3<<**^ry7-A%9iaprwDbFzWZjh6gClOV4@>_O6ilcmU{;_$Ih1tp z*VPWJ8Et~8tQD<~^YAWb8Z}Om#!~_R|kd+<5F>P-m5i)1qp&3X^N z8oj^NfcfQL^g!r%_XF=g7wG)YKL5X8CYk;LS!HcaOkpG+&<3FX6a^}Q7YgMjaR{M$ zf_V+=1p`Gz4a|u33O4nSy1L8#YmlRD-MwN~otGsZS;UR=g%Qh}Px|e$8!GdBd^uVd zhv`Z78}^4BMpECehf{h#@hb2v2jw(ql?IiydP#NNYPNBRMn?uP#~7%92}~C>3g1g9 zEP*^vX`8Vs!Yzj<5A)~{`z96vwVc`pR<9Waez}ivnChi0r>umgGhd%2!0HMx)*I7nHP|_*WW^YbUNRQ1fcv;el-*>r84|P^ zr+s%o2B*w(F)=Vrc{4%)*%}fVboN4$fg~MvN|FO49rjX^q(BCH71&@!kl&4yT?Qw| zGItK})`I0E;Ws9$k5u6HUHw%P6h`@quTJ^(y3-kK!Ahh$!Wpyg;GHG?%C_t?EMW&t ze&R(1+AhXwcg~NBXCy?t%y=(AB#3CDDtfnY18h2`sqmRgHCAM-i@|u3faQO)0V|C5 zp|iyGAZ#I^a5YZZwheaJbF_3K*6BoW)CODWGkc+&AjQjNrMns%hfEkKY{uR-NbUIC zqHl3%%pM|z>b9tDvx6p!GH&Z9^b@x|B3!^znb)-xOPZFbmzly2B6{IDN8N4U-jFH( zdif{LglF_v?^E!I;l%=Uk3C2WuWLtB#92}8xL-(vvABgd1aI04JJoKRiUm zhuh7+qrfTo#rgw#>LUV`v9$7ZCQ6k)4!y>JEHO%%K0zEqIcmF58d9Y#<8KkS%s%l~ z%4@SQXKY(fR6WP_PE?`&pUF+p?_EJ7ja$&+6H*Je>X5TFwTq@XOQN699l;C~z>g3M zw$dS;!VuTyxTr@AMdrgE`oZV#uVPn{wy4G1uR%bqca)KWYOvb@43s970nyIz98&Q@(fKe{RJeyic8#f2xSv55Ju2zuk(98as*qu-e=N^{uRaBC#$1G3-;){P#$5 zYMLfWB%nb^B>8&kQ4e9HA<3f#jXMC9yCJCwKGjs}wd{hPchV1F9!sPEl3~&VY7&cr zVcfzT^$INwT6$>{lbIvVo%9E3U0=_8C_dO4`oA0k7~4tlnJv{-dlBTCheh;*-02PN zC(zSs3J|U%b#Wz()B_P9a-F+u*`i`dSY`NY1?ic}3*_CjPz^X}IhOJcT z6SRa%^i0*%i-maTE?iwnb#r8*C${ zW3AU^M`{j!`nn&qY?KNMDWva+=plMs@pJN_Z*&4?dS$vX=zBUj5@u#lh2YQ}%Y`i< zzpWPG{cB`0(JWLAEmr&GtmT<$AZY|0x#|ll)Ek~J%!D<8G~o@+$et}%MYvDeSt)EJ za}SuYH|hxkU@nco*n8UVNS`9g5$sI=4gsJ)1-^%|LjHlPm;uoL0pt*S{mOm3QzKH|>r> zwMO>i7M33{fh;w{(l>p{S7V5r`j|xO=!~E`CMY4Gz9Z2}$B2_>seJ-fiKI0cO&LaoDp zMUqB@H1ml{F&cOT9^AL4XCzn7O>WRe$~pLd8g(I$2u&AwA$nZ>NBr>F{b@GmmP zT?WB6UQ8?6Fy}Z{?;V0KKRf@r;h<&X{&I7e(yy60?$|x|qMuCGlT`C&+Td>j!~tNf zzhi@T;D$)WWQ%X|H}&wiVbh}bv4uTK_eeu!FJ=8ON)`2sT1`rZ=r@QJcj+2$0`{t( zX3&UDq2xS%80!PP|3csk1rZolf&TSN`bW|FztL^~w;B9Dsq(YcAiXqI-M@WXtj5Nr z_eG=;*=bv)F@=4a%@a#x=9lG>M9Zm5TlQD&H6Jy4TxMLMPni<9VA{qE0~>rpWa zosd8_de^K_7XUnaRkjU{1Mf6gR{_xs4P|q_9j}|IHXQc%4@)23rk`JYV;!fxzeaGq zVE8K40x%s?7F4jTC!&n6_F4j%GnyG>Hsl*m2OCW4(QsR_M<`zK1Fj;)7+(XHTGC21 z>g>;^mqDi-OZ0Xs1}`t0vV?2~JKz`_*Yp`3mt!^fKj+o^YL@Cd*J3-A5pV7crz*m2 z?+mYgJ|7Lc^{lICmpmC#Bt|+o-rj&VI#LeSOk5fz&y8%myjp0M5=kzE8WLYdJQ8Zsa<&~Z)`c4WoLsl{iVe%!H_$G{N7=Wj z%sIJ2O)h9x4nr!)5SR6jDRr<;>oa6yaP@Kb6=Hi6Q?gLE^i##O7SqU(ePSYLYu`=B z)HsRSo{U|)F(k*p4(^jGgy$6LMb48h=YyOff$vAE)OJr&tUbCwL9oD9leP0KEeIAS z1e&7?RFH>ThjL>@}-al@ze;1}(dl03za`FHHu0J+NmGdyHrLBT9CvN~87HEK-)Kzu3)RJNOl+~(r4VrOH)sWK1M5#zH&kP~; z6_l0?p5@Tx9z;dZ;hWvzOatrUjfpk)sTyYBff~zh3mf7cOt=SN6I6-QNN*eP?(wYl zko6o52jzd$k+-cISKwY*=F8Y}&-Xm?SSPrFp=N)@2Vek^8ZH^Nsy_eKo45K?VbFuPZM3-tumhs055 zHe^EbUEYczs`;)#WO9$$d`ITTyU}gI_odx7dr4O8|5)jPVkqCJ0{OoZklzX;M0}~< zSymW*a@0>})ianfmPE{lK#&$`&bA-1-mx?vwVLH4>7tXZ>qFZeip~Eb&#n$ zfOv*E0%DfQI9RkAxIfSsTUv>(Oi8w(fzA}BDJSiZp={%mbG9)^f1<=zBzlgW$;Eh- z+!75nLP3_wor+?yYmWSSc(ZBZNZP!7GlJvysxWXlE3iDqGFdTIGh94k*>Zew<4R$; zWp_?~qxu@}6;Zv{UAWoq^PQ$)OC+g$u%-llLcRge?cFK!d(m8;-2V`8-^F}MsDM;{ z;nabUK#EF_tDI5|q`M^tgucGLamVo-pCcHVMtcEO?dNqE65gmp1L-*;>!7afz{Al3{>#$ z`j!AL0w|PNSwOZte7@6#nEp25o=n;_EbkbbLYH6rYQfWJJEoavF{(kXy zID?gJeciLt0pC!#{eVnD=wZq$4I%%55iYgnBqgs)pJ|B^8r3p zsc5E5&pQyX2rNV8T`(_*n^7Aw7*no}&zBg@wHr$jq;*D6D!E(gF$aGC>{s<*wyeRw zP`5VDUc_9j$rW$#r^upBL-Ybbx<8rPt17mwr^Ii+ZzoWl5DD?q8n9rtL1_}D0ra;@ zsZ;3e>t#_*to{K2W9kHFbfJq)k^N>-G1Q<4tK-Hvg#lm7!*n^bj3z3>a!^MzScYnq zP%@7BJlP5bbj?Dso7bvBaEk`+A%CW7K0V_`K1il&L%`g@kdB*h7n(gwZG}1|>+x(m zGcfCAMF_%VQeb-3GgR$dFbSSDvSd?3U-vI?-1)x}n!lhi;a#~f!qGjqIn zsWV!#kj>%`9AqA*l{3ZCzkNe-X*_O0wNr%1Ql8{oCBSkT(BBhfYJDguEh%0~XS^$0P((GGkE*x9mo+&002~sY@va1)7bF&v0ZsNc zBC-;GA6Y%Nlgmp)joDM444x#?;t3vBxV2E^5F;ZDMm=LI6s4)FyoS6lj_}>w&(-$) zuCpuasIW2LOuS-+Y^e|>ZzZd~X>e3=P&g`QMZBDlMPXQ$*MyD|qA^8oYF2@d?t*#w zh0_gv4hiK6eLkPJQQ7TMxT15=oZ02lxDwLc(r4MKS83Dge&teoq{!F0vdc2@Y1MC@EyvbZ4x%355go=na z|F{DHm@}XB;q#{=@fFopyMy8xjX$5-6AaRM{MqF?1)qDP;qo&tkMesZ$vo6!XvOmO zF7Wea7hm>`s~$`lT8DaJuJ?+v@`O%t*gc^XI&bd!T2q!cAD zm+%g=3yg8_;sCc%Df1D?U*BR1-PLmf$t?*@oErZf)jK1*7i{iDzrM*3NXv@25A0S* z6X@=?rU*y>SSJanHdJNatIDQYjlVAQ;+JaQ-JARX^bTM%D9m(#zZn!N{%t4TO$+BV z_#vsvYLhwCIdHDz7~P9?|$_r)39b~7{!0e0k z`&|v`%ar`KQ{uecF7le3u>#Fs^X|_JFYJr+dKM|$y9>pO48^2rPw60J*@Dg4U7f*M z`f%*JWx)c$Rr6e(Y$YQlvtt=9)O&%ZW{Bc7iqj z8a?$2Et%(}ajmkFFL#5YVYvq@Tq8wyg+gsc1=iB(dv9ggCRu0LtVoljkV~OTrURk5 zpX=ST`Om(q@S*mGN{dZmYo?u_ixu7Oy&ft1UwWg^()HJT4aY9?YMx56dPf3L5fL|P#)s@6 zOIx5dI3V80RQ7oC!{nIv@`jh!2S80UJgzxd(~31hWP#yASd@uMzimjn`zl4#Wy6^x zWW%8Vum3(dzII4n+in(3|5)MpE#IdAaX2@#<;(`rrRjVLn7Vt5M%h?oZvM*ThM|}8 z$RcPcA76eDOi_BTX94?DtgV0T-HU2{Gc#oacJ|YO0%;IgijSBI+Lk&(Tp+3s`JFEd z!KB$otEONdqXda4p1|sRrl}{RSfZxH0E-c#KaDtOE0$!YjsXZwE*#DRE$DCAeNdZy z&M+rVK9BAFsAVjjuk!^3Nwjy=9A)Ej$H7&wgur2Q`l}TJ1*2Eeeuf zPc<$>qU7;Ar1E8AO1`Jq7Pv~7f$)&@L7hvKb`Uiu-72e;E2qtiG(X7WwK2Kzg0! zD}Pr+Zr{Hpw@jjnIJ<|#zc*jxYG(bPNFAZ>? z?(5LeAPpYT?jC^52@)!0=LX`m5u8D^B52^ zp!aXv4{)1*fJ^*e0ax1C+TcF~yupb-^S*z>Y$>WnO0s1+*blku3Rs=53*gN!K@TE> zFKn*Vnw?rQ1!ZGsSM`qZHZNT7Z{KMo>dQQz1zb&Gj8DaHUtDwIDL*$geWd#&OLN6=RBri!)vtT>!2HSmqgw({ts zF3^V5P)Y2zDxZ{6tQ5~SQGh_c_;Vha-@aur2c&;zH=QVTz+wEV>lMuoo%Y<!XF&tLO z3!Pco>RoIbqlA=;y+~BAdJ+45N*gdQD7YpRfe;r2MIQZa(n0Z4USXQD*w)ih^M|P? zKONqDw2nU=P39-8YlI@2LW#&dSXcO#&iWZpufPi@YG~g6#q1I{5qQ?K;OyC*682Mb+Pi!PreV*7Yz_g5Vdtao;7(W28Oq&$+j~Ey1akR%z1Nffj zX6sHH5pMe2~#A6 z%#FlvF$kpFB6R#?0>4OD708#WJ_o~In6bd{Bl!J8qU1-TK<@w?Z4V#jO|A<=>1t$( zU?oNb-G1DvS7kRA=IHvh$WRsAna|u!vuF*Of>P}icfE*wh;FHYxnwN%0$#-uj;;IK z*>z<{u$4#2NPyR2#==8X*Pz^+_17jh^yTSM7u=|WI^D8I_v$J=^oYYet=2&QrtZ4o zk|l?%!ChBgw>P;W{Ol80syJml2q~?fuT>O|wHZw<-4YK=pf;x4_ma$OgFiuFLF?`C z=AKno)8vmRCyh8MmPcb4-rkVwf}f(R%%9umh423t|mXsZ`oNbT@ba{@=%z_ zNqbhK|Fr?Y22sg$DUvf72pv(BpkT0@< zpXY;qZSPs)wBme4DY#^fdTUzB+(%YTJU}0QD_}Dq zK5o8{(4~FuW?h*(TpC~5OPXXd=jYM$*z;xP`&X6eChv&!t9GDN>*oa|v!7&oL7bE# zVKIPi!Cg|-L(NB;VV}al%fiz#ds^>LD*N^p$u?5j8Fn(#*)yank@Jb}Eeo%`&0qEC z0Y4y78dgt0qM^IDvIk6IR7@@n0VB#c2%4msGtWdY*%lt+g^X7QX3Uck4m-@ z#0P~Sa7UY`f5ukRRi8Bp^|TYGm+c-yPapESy@Uif?y)9uUHc7c)u(?9fdX$z`RSKD z`A%%NM0vJO%?Hp@&?yg&fuH3Y7}$eb*oD^0U7Q94L7!1MQ8OID$VuUs8T>U)#11F* z(YARX2n%->ir3`gqB0)r0b|YYadn;zH>Co0r2=%SIj&K9wITbYi<2Ccfj|FzLxW$@ zN)SN)`lXHj>lfqy?S_^%{uC-w^&JCwdZH8M$aR}2Usqallcq)<~*f{O@{Q%D2quK;Ku%fz$E ztJ?4H0T0M|xXv77pv6CYzc<`Xx5 z%&aP7LBLZmXno8;scCp&tnS)Bb5~^tJd%`uJ(6#!TGuw*|K(L_XCqkifL(?dL-%vv%nyR0l02$ zv8800DsJ?g1xd6Tt0WS7e4JZf_jDNgv4?U zQ0kf?UHAHNEK-(KHCu6}b<0;Hz$-|cwTXVqt(HIM1bomPqF_v7o>UFumWyH zozy^n8lhZska>IbRWT!=J0+znd`ZJ*3p@yp@O(>M+}}c}xLA|thX}pN#Y6)qXvd|L zN;h)bKAw7!bxcCaYlx+>4grKsqFti*hAlZEbA*$HS-T z8SQN=%9!WAP?MOCG#?SV6b3>1@Ga`s>#>uJo4${*`PqOgMLJ|oFi|$)tc3)R%Oo+| zqs2ACW+RJ1v64xBmrzciSVfkZ8QI3{aTd}vk)&?Vg4vBLK~5P2PL8?EC{^Gir22yq zV%Byld$r-eJ@8T8BG(s-Hpy`v+2D}?uf&8V;;+kWTzyp&S`_*T5u?Dk?sLO~Y z@UiZ*LuY982HNdfatK}l(pFV-6!jGFPLcc`V2;Cy_q$9qF<7IV0^%{U+j185$xF$k zoJv7t9^R{gXsCJDRz8Rd4iYFMjh!hx7t^IavCmq|iZQHhOr#tCb6&oGfwr$%^I!-!H-rD1w^WMAn8T*cXM}4d>wW@0U z*PPFs&+j=`rRE0VDR?b5>s)Dj&MMr4e}KV(+RWcOGg8aKt5WnR@qJ9=?%&Vd*D)FF zzuguaWy9*=v%WNB0ExTXw<}xCsCK#}mU3x^k0@7y^Nj^)E*jxR2ZaIz;W;D=&JF*yZ={I+&>ivhE#Rx$P(!d(w0 zTsIH#oPlIGv;xyG((Y)=gF4q%^-^3aFcSuMOV5yNa0o5xncEzi?C_t8o|Qx-u5* z@!;L;>FCWIdFeOHxm7*w6Ct^sZ%I^=Rz?m-1RBle5%C`6@J+Yg&-swDm;`~;ot@ES zbheH$tKsZxsIzjbg{B$nzQq>D0&n2Hlqnns4A!ln4X(c(ZWh^#yj+k4f9?-J6HBf( z^EU%|L-rZ*q$7AQpFc1xf6(E_cm#)7vEVo3Yz-+~u8d06{%ys5dUnDLn3B&~lG37a zqxP)@JC3P#^G-e!*ko)v1VJP_YBlIM&wkD8P|W%iF1edUzMgNGV1NIP1p644b`+dX zz}Jt#J+3bw#+HN=Kq>u3MR0GTv7EiZ>0obTwQv*caza>`EKB)d28BEHw?q{YaG=2a zC-=s3?U0dFMQ&*j!t^c8cwsf4#@0RpD2B6J|@jUCj?_-;YeV43rJroq@CN*|9FtO-dtR0Fd@y8eJiL zYG#eYfF>moc#!-vqs{BeWdd z{#d&Mldw^!$ce9Ksxui%w(hHOUJNJkwnZTn!?h%N35r}$VnD)e`9v^=1kTH0 ztzS~{Aqidlw1Rw-NN91L-}37@*Lu+$JdfD1j7vmHJ)k0FdXG&-Gef#TOEaU&gxRv| z*2HzT8w9@U=Fm%oV$Xha)*SyHLXDQ-C@Zq1`(51 zUsw{^ijnm-jv@X!JHo6JkeOP4dw~jN(~P+Gq?PP*Pl>2w(fi>X=vH$?sL`dRF=Lu( z=_5cKQkBPwcHQo@*iEgeQ?7Zl9;sH?ucK>R!F2qZKPS_6_Hv5#=qf2sqhdO?vUI$#p>tx66u{ zO`+Q;HgovS_Zz#j-5fnIieYuwk?Ukh zfYB=O>GwU_dB&K!rldBGHU`dUY2t7M?o)$e3h+1<5-tdLI0AZ+==i!!2@KeqXc6O6%G5d`OfpK>F0#k^@R786P~fD-H~&8 zx`w(xDX97q_TpxEyK&)~jRvvyPB5`{+Je&P46SnThaX{Aq%&a91=q7H=HmM%AD<`U zjJ>rCDVM>N*9z0JvesU3lM4x5-Lh2W1=htkQ~ZNT+ea}i*O42ZQ7z8euVtgEn4z@h z4@V(=NL)lYqaQ8oEWI;6c8x0+(G;V}>aa$tkbS~-iI|^;V_y}H{Udr-)#U_28~8W) zSfVZS#k#R3Sxm$9qIh&IHUtMkJ86Nsgv&z& zpBN6l;03&4iV^oJ|0XCR?XtEo;trmyw7yrvPZJJuYJ7)D^xbv746AU`m}`4eBCQu~ zt@Z!5!_Y?cOV$G8@>k2@+nchQ3w2M*dpIGs9)po+YkoF;_m7y3>m22S^6_2EkJe## z+G=}7wZT_iS%*=hxRMDOhpUmxq&~)vE8$Jr1?=}?r?#8h*R6mWTV$k~+h=}kzN@FC z_in-;le^MAlBELKeQ?cQ@q%~ttoJY5@JD2Ap9q{knO&PdM0qElc^Z*mc4sOv5 zKc+x<`6pjkR<(>R(e1E27Pr#hH{aPfMekV~mFR1*=o`(r2o;nAMtx#msf3dM&@z&j zMwYMDxSp!%jPJnKC2-8Ml<&2!3RO6PEV&eCjcjS*1(492B z|DaB}xi^?jc;o87I*EMvc78*o*%ZcIPOt~VLeu{`*qneW=yd^zn4MQ{gAIC`y?$c#qDmQ>d@a- z5vDZu7)=sfgwX3j^gG*zO$DYeO&Hn)AXB5T*z{04%kYfmRjX|FGo#=L-D) z#S)u9>{CJx{c^UhkP4SH>KoS9c9#w&`ku2}YOSsiTX;fbFx3y{MK!nHYCmbh@S{8Z zhr`nZh7h59zfc1P1*&mnLX#A?3Z71#QOA~}L?u^B3UBT~^bAAz?CMwny3Dy2-Aaeu zlz9B?Yw#PlnAMl@K|e9uk4|Xysgg1djq^B|#H)96KDGI@U3slFwmIjUUk}GSJCNW% zngk1p0cgovRq{>857G_JKS5pN$*Za3k7It9Tz@^w9dBc?dyPR->2=p z>mLDMU_zi9@F(mJRcU&o zH3^A?_V6VDABtc!(N2ij8~JKy(Pp;+Btp^J*Kwz!8?T8cmNABzhwqJ@JdfU)!cJ)e-2bkX$3{QJ*6TCX@{Aa65iae{_*nkDG9VJr7 z*uV&RiR+S3F*q`@gsueH6*ZvPFElKx=KCrd(c1foTHj=JeWikO%%-N&2 z4aeD)kyRjwtT=JbYXyB}-YiC|PhBj!s=_=n9LPIQ(~_YY?!-+TyXra0az#uN@wHOq z!Icc!ypM7@ufE>K23L6T248rkCe7Vf6ec<(bIAt_Npr|j`-f~m@X->7P%HN?^!sK& zVmikjlw>n`|~eb zxfISPuKl@-*>tgR$r-l+64w&endrOn9bA7|Y5s;#4xO%@HAC%Y;#xO*i;Lx#S{4nK zUm~1zuwI1vJNU?>KbyUb(bh?ZTb{*uFMj)*N45fI#!l^S(}_N>vfG%-PXdE+zET2h z@OW7Mnj3XU_6wr%03%PJsxx2t($GfrH!TsvH~8;sgSs<&xFU`D0BC;B(@T~QmOzY+ z5m|usUZ1~@Oe_kcD(r3`{&C(3PSG=raA#xyX0OZGgJ6hY3t)xic9mdyDD26JSfD;k z$`6T@SA8?>Ac_kms7nUf*rF!E>|Q7ie~7$sP5UkU*C=5x1-@HUY*P&Da{`vw?Qj%U zr#l{)WUU4eVX#~i(Z@NsOU(S7LSnVw1`mtAB+;|CXL&O@5-_j|{qYfGprbJBVuE!2 z0pIh4(rMqLkq*zpTs>^UE}doNvQOs_H>Fze=4tkk^ViC&oqJ@ILCZ73%{MJ#&DueL zZ_x9qw&EDkzxfEtryHP+NvTc$t$(fW9-m9aQfj(^vB#8m@{;Uf_h<9?sX_j#-0qguL~_G>S*%b;CSpxcX*9 z31yYP3%{}O_yzv>myw|7yOG&7aI#_tT(JJP$VGW~J2z`nV^_ETE#3T&?J-+zLuEk; zU0)KmjvQ12L>M_P$iB6ZXcwZBh_f$$y7#6R&J_odJdQ#xfn^}da5rjYZpJB8V;D-X z7vQon3O|}8&kk55@_&x8$>WQb~ zR`a5^x~kt9d1rbF!q|z#+Sbyr47u|9-;0R)kp)6o)UI7gNPmAPJ%56LlvUbL3B7TjaGhF#J*(pX~gqC}mh>Nr8kU;0Di<4&bw+3@yXev<_ z>C&9f5fv$5Xrd&~+heRa>B}&O#$~|`NDbK!g<3JV^MmV8$9ykoE-U?k=qa#Hq7I$6PsdDSz zMy)We@CHhvO8lvKw1PF6N_exhq7C5(`t?fEl4>noMuab>%wG#hQvcfhP@UZz)BZbz zi~w5Yv~p-IOE>W=Pr!VA-<%=yyTcr+wu?(Ov4wnD={<)%4OaQhtTZ@WppUq_sM=lp zq4p~P+tN&W-Dvv(4D|x@cC(Jj z<7;n9Ip_1~h8R6@D-S07@vx7$b^ovop5o~?98WduFS^aLkk+g?_jfMfXCT-n{cblK zI+H=8C&o>1^;JzNt&R_D8qe6W8&*-8yv#yc9v+LMt#j8kZ z2vKMdrkkWRY(a_*64dSK3)nwb8<_1Q*G|Cs%rwTgZyf)&+W7Z3(SHwZG-3SEk1)P| zj8SxGLk5l-f5TutJ>C>T+4wmd2d>pl#tfW;c%<7=7#p$TT3V7S*_TDCTiX`4{q4SfbEx{d&NOc@qXYpWS<}-$x}Ub6w!c1hGC36mpH|Vnor}i{ z{W9m;TNL6FNMm~IZ)T2T+E?(B<=IPf=09r0f-zO{j2@2(HD7H{Z2Uk5%~NgMm)?Np zd@RD#1@KP6@F$NaG5`azjj96x0{L*kGmCQOnk@Ds2!b*YGFz5`veT39g5%)hF2&#) zS@xsJ6CbmOeV4ktnYs`uk~8zyOQ1)(%@Q4?Q}X&-bt%hM7sJI4I66+{#Qf~&SKER> zdqDHDeVvr9rl)Eq->n}2tz%MH)^olY)zQX!tN}Mkkh4jGSBDouW)eidpPiCM7>Ux& zmZ`F{(BKSbfhD^MbSST!0O7<)13R)-$;kY)(liNjdSIW(kIS(4aA&dFE?9y$?rWCI)r`H;BftM zCz2G?RR%d%Q3x*eN93|r`&q?68y;s1X6A(TRyHN+m+?iRqJ)~san0|ewxy}U;3yt# z`nfoznlz8v$*-Wv-%?~(7KuS8?)0x+>=tnJ^nYU2`G9CZdQX~z2K3JtBbC)wz$UZn z#bU~&8IUot9z}Z0V!IM19=c;u*W%a)$qiye6C37tIU-5BzeD15_0#(Cq`q^=$%FC@;+)SVyCq?w z61AiNx0X3v!%iiZ=gMUeM+%lLln#& zof2*=_%+EdZIh0PkjuSbqXP&}`8%?;exj8|YFi*hbcp-9VYttS{oFoK2z5i;Odbx}H`v3zB$PQ5yEJ&i3IT|5mntc&k zgchH5oqN$i`Iq6JrHwmd4NEL6=zPLoex6u*SG9?6f8p4&H9TLOcoVH07N|U1k+{rj zbL@r6D8au_x>;Wr25|ni^+Zg8F5pOCvETJgpLb3sx5YZILxR0siHO2dzv|6aIbuM#-#jpw3XMmw7;MaL%n5I+X&^T^%aw{^`-`(l8`Gt67fM`a zGJE55=FA%ljXngk6;fhtYj;jr=G6BPoB*laFRLIa3u26(rQ3@XsQ*RTM`|h3*D^8Q zZfJDtR{ZYOYwyhMclLFddR+)^#TDuaajVd|(ZGHP{^3=#F~Ey~zr~@&yyj)F;!C(q zIQZ-NTf_PSfpvuYlSiYCm)764ODuB#Ft-Hq_~;85M1IwTsezZ$#XT6nuJTwWys3cE z>KIm(WHST80Ryk#=w}8Ar%MUl-|-|{`MVo%0kS0m%K}d=!q7z6-GQ7^HcIsnUb{3x zRlgkUv77ovm3?AN0A9g>v;TL7UELSxee!Ep>ppFm&ex`lF3@N8-lRKz7U!e%I zNx<_qcf+=rk(16_9CE?Ohd(Ii7utx`oajuNY@%7`-psz$KvK--vA?8Vy0oX`kPw>r zD3-4XxK=OuftZ_0ehYyr&CZr=f?(+4`fSdy;Vt&qA-D<{MD&2&kV0X-^Bn({9Eq;e zcLOQMI~2GA%qR^V?#HI$EsXc`!^~QozoE;CC!O#-RL#bt=%JJhILfxbe!KevHMwcp zmb&$uAT>>mgN+Tk@e`?#D$8jN?P*TSNS+V4CuHWqo%DJOr}!zW)BrY6qqQ^8p3S27 z+m;XNyv%3N@n(Z4AZ7>Rrc!7kePt+#(N%mxaJ>7TvfKXg^Yhzhzt|y0X=qPd(TgXK zLZG}v&=Gd8U^;@dazvY%5WpeR$FTo21v7v|Tz-)tnsetrbf?y*ijLy%@9t~&x z8-h}Tp?qe&o7#kTq?(M5Sh%|2r;{WLlp1`won*c@61u5%t-cQ10~9q2rN>z|4w)qx z&YGptvGbau#zs9I{d+1JO1`w~YKx|$#Aud*kU)U;L3p(3 zL<*YKbrtqNvb}r5h5r(^8z6t=iL3ePdxwaodvXukukLo|Kh@P0_@epKoUpQHMx3uS ze%N}nj8KP1KHl6^jGQv*qG&8(w0=X_n+AIm8I!wLuriy8eHV9bEL=Q+`!XwYc#)FM zgxkGL7P|_aD31AydU*Yrx8F%x;&T}shc?pmvHd7Lzhx&l3p}#U_>QI$SN1WH*9fC? zq{oRM@g69|7Ibh0T@3|X5%fY!PT@M?I}AOxMlBq5afOrOQAQokWOYqH@d$!gCdH*3y*%H^rlAvH>SL|=|s-%1zUNuZQ;0*MzB;o=BW zf{N0}Ep{vDSP6@KZ-9BSyA0x(-GPn?Im&8#x_)=G&m5&Loe@2V%GVY)n<8ritx1W_ zX}x-(8_zKTP|M6Hnb0ceo@jsGn0g<`ysnr&oK7Q z4OCe1%Z;JP(Bk$@e%g6SR?v6EGP=pcZG{U!DB+~iL?+TFOsZh7X1fMGo%S+j?z{4` zza=P4FjW2WCht=gtM9ezRU0ReJb7aKjg$&z)6FdIzQv^|(%$}|VJ_K(DG^>Akjmst09ee0{2;P-^O0i$fsYy z2Gn;I7a*;qcWE=g$ra9k^*F7=1Wn5NO1fMyaNm`59zYeVnjEp7!3|(Nf3wa`CgfX+ zp!E$PYB|7CVJl}M_q0?5;iQ?)H65>T3uDeFjl#RYX8+E4(%C#u^5?svL&r>MxA?c<|M{hYL48QVwd$DWtam7$(WL+eiobe3B zN9=`PyR~5^SXZeQds#Hx=!_pHDF`T02}0TNqn;&xpS{orURb)??hUW_6_c-G!0r9MXLKJD{rZ9`WGSx4IaclFM)!?>8&j8{9hKX@IaOTEMQA zn1Y@-(g}iqCh|cVnH1q7ImylU?dl+ZncPT6UXdN2WAb(+W~ZM|PcywuOMOkjDIoGh zA-H}EPKmDIPplcD^>vf9X5Z^!Zq}8IdG!XJ$kPB>3x{<2PY@@+YM3R-ew)O|Q zPn5snnv0dhkyeOYSshat3d@X;3r3l)3eecUlq!Z_oC^#1(%%te&-uAI9$<6dBdN(7 zxb)mt#_%*m6Ho`N>_w{*jkW44ldTE2zlzSLt{n}`Y}#25&qpqmOrw39C-=9D0PmD- zeAUPGC^m}0KMo;XPK*8qyw*Q#llQYUXcb)(U)4@`@?xj&;xj2vRZ8iFY^?N%F^>xW-1Qwz2Oq?!8XPOAB~!dP$(*NthHD1M;a%e)c(b65GuD!lIl zJdsj>8utIv_uX8K9b7FOUF;c!O@MJB#-?tfcE+x*64rKZ<}Pag^XC7o!d7Y60`~#2 z0u)Az$l$1}v{0zJsHIy6hYjc&)dus+*sO#b7dI&A&RC2G{y5C`>~r?Ks9RQMKLg!q zfb$1#OGOTl`7~pm$t-^$N@M1}Gxfgz2jkZZW-s43C@22JjBm$_Op`_GeYY*oHt^h^ zVNB)!RJql(DL$!MXWwz*)K!>}7lJ-~Yx6mr|Jl2=-FxqQoJWn!|67%)<1bF+!E6+$ z^Nw3Z3L}&IL&DkFfo`+qo4dE$Y{R>}|EtXLk66nVc(QmI64(JDya-`2COW3Al1A|9 zVkXdE!Y?y+knV5p!jIF@@VC{MtDgzIcE#6&W-Z{5EG*&5dU3*?qIeA|b%wJ#i~<4d)cKL=G&ULj|*)FJu+{Sw(mkO`WM4+;^donpw!W9FFE`;iyns)MQt^# z+}}!5&};0pUNhKhQyn5_V92VzC%Bk0r5K0aBJ&e{pev>LXmwph>=~z??0O8?1bx|n z^oDVfhdc>%)^)xiQPF(8vSTZTLE7{~A~d!;2%$_DXX)%hswuBVn=*zJ?dT(9nR*(i z=WEcV!UM{cR6fN1$`22^)b!Q5PMIi+HRtp0vkE`=g0<-!Ke0>Rs#G&0m?!e75tgq_ zx)rQAqYZc{I)S9#r7&ThB5cL!!s+C zu?>%Ljo*XZl}jib8yL}X-s7Deq>Ul7ma%!5D4<@Dco*j@bAz;z9>OoI_9*{~E{mIp zQJjnsA2Bh#?O}eT9mDFomb!60;;z1RrRSR!qnJZkIROzV&HG8`GMKsyUlm?&!Cdly z{wz3 zyj`9)|0YpphVLS!1RyGFDws!6W<%ARV{5{^4w3_xMf{9>WphJ}p(CdKq!wqN0a{k% zg-9=dev1*KvtV5i|4dexvui%3=Pj-`-*IF@Gtk4MeP-3WCWTC}l z&v40&A9}%8-r}feuZoEAk_<`-0wX>P55gF?Nj4Ts71pUT!0n^xF5dNc)o61GdMFII zvnXv@8_ixMuf~(l@JZ(sr=64cV~j)dbG{VA24kHWMz&m%&?^9^M+)mhH%t`4I2Ai~Huhs}n&Og5|hQ6O6Z8%bMe8(f!idAo#=o z3xsHpU_h1J&df(Soq*%o#dJx#hV@`9{Q^h9P}Jkj?qcK&t8)$FUr{3tXj6Q zqSVxzKvoMI7FwRsO>K`}oh#4=@#)kj6co!NgS2x*LpHfd7fqrnZ*QR#3cjhXFiaAD zBE43!y|$nJ#C+}~!NK<8xLIQP*%E=d<{$zvvif_;Ewb9EbVPjo9<7>O(dD+9jg37; zrW5-CEw2XUs}<{1tuw(~$-gQIh_zr^?M0{0{7fJ?LdRbh5Z8Uch_^hneCjdTE0A?e ztU?sN^Bje8qd{CF_r+|wI7U=YwK_o4s8Ooe`3eoY7BqcC#SrN>x*xzYK49$UAHQy; z0gQs=&Z-bwzyAvcT5Z=osI8%g5l5J)r3K2A3^ z?hp!V5oOi6{joEY#P|H8-NJt5HK5R^K-dgzBPa}lr1~GEYYOurNGM(#^$Rb? z?UFtI(`2lZV>#X_CkNz68KxvBEPxd90{Wl^OuA4T?GFEA)t;9%95Q-G?rfyP3j8@#HQdB~>Dh#WE&6~;c!fA(H%*8t+4ZhC7LA2##92k?f#aY|CN?6{E*o{$>MJdM z23Na2JH>%JgcbBj9YmhHIvtB8F~lx~gL+i4?on!VrXJOlRG{;OEeiseraU#;F$1Su7&e}LI$`lf3eB3ch{hVOVc_^W6XoYvC^jv zhv7ilEZG!GMV-J;`dai{;M~tc;g>+UaiuL79eCsOa7;*uPtjW^;u~X(NM+-3^E0v3 zD=XGqO7g&RQLH9jaq)&3qv--&|tGSv2FcesMGH%(bxw-KF$ zOjgwdb#ISBNud$>eeW@~RZ>3sbX^;Z0LVyym?=E)V8yj%f2dJma_^4PG-vPwOeGBQ zWUmTwnOVG7EGZ@%j(>Vf4A|C3Kr-B*uD1vb*)kjmNPEXY5-1!kVigdR)Kus%B`@bD zh_jxq=3E@Q)VJ;!LCNw;>R)6fvo^4pg_*D)wfU^pL^hW5Q6{j`>GQnsMB;1@n#4>$ zF5&l~QYIYSH*?zie0OD`noy=lNMvzI47D8#;w2`eD^&JKyzRG}ca!DSS+jst=B>VB zLHx!yCuv6!aR*38x-!@Lg_rZo&$V!$h6swLn|-b3=duNGRg}0E{>7HUoVNMqt>s-N zwN>{ZJ8Bi@x;ysrw)$e#S$*sUKiBySPkFQ8S@)Jf2GfT85qwd`#vurAe*@j0Qv~mX zovieQsEj)}E&&IO7sX=qr|#`E$=?|F50uP~$nYUX(#0m^A7~rAsk3NC0rm-Th~riG z6JAC(C`j(je;X+xPign(ngawPxl{(F9GP(5(H_kIYm)+CovR=g*M$+;DOWtmn`7OUsPx@I6jLtr4r{7L5GD|$O^RZ5N1 z?v1cb!tfA!Fz19q7!is|mXJJeip@xco~xDDrAQiqz0UV5%ZKo1*nMZB;n2>Fr=LvM zS48UK+s?Dw*gYn859R6C%x=TO8Qy@$Tl}7W+n2cf1mWHKeJiare<^VTZ9_wp}a}1YgJoT2|uLE5=RT&KN_T6|i zzB;C1OGClZ_ZFHSi>TRHZr53dQ(~Gj{>X`Cpe0ON$1^BgaXz1VpFhMFPc+3TlqEMQh7-BLH@c3jP}GyMAg>p=Y7E-$Ni z!#}9rSvQGT1RGW3%to1P!${f;6WBb>KKN*dUR@`dRXR^6BzC#;muRiV-FsuSMv+g4 zp(7AgSO20PuMLSbA^!t<@pNbN=%iw&f@gn=`#jWt%3_ddg4oj?ZdgTiPQ>5TA>xrX z3sjs-8#w5gwv%rVlYINt`LsaSst#!lCACOa9Cn8{ye<&DG%-3e%j={PKIq=KG#zP8 zMV`BOP|91W@4o)IN!3eu-W32=bc(QFZ(A;4)GY3 zx5RA~^yc2TZ?Agm#mpl9K~HM^3cuztV#;OT(Sx)rO)p>RgI^O(Vu$;^8H>)9k$s@( zZKmWemW)msil(YD7E52y-ZLO`VpY5;7~Y1hN!wj#z>5yc#sTkU_CUr(5WRqmNlgzs zV&i2J)8=T^^HvXHUm~=hhd2R3WX_YkghZwgQA$7FqVZ&A4Q^b~x?7>H)2%KBe;vts zEeQl?G*7w>_KZAFF@SBJA=uS#LXSaNl4)#|bkx+=e>W@9 z*;FJR3P}vWXQxxG>-g4P+8VwsHu>E)RWF5_Yfrpx3eJAb5-NAhkcsqad8h3i@}6v1 zUVr$X!2kGo8({@TVJH*X%kJD*M85+`U)bHY>)X)>)7Yfk0KvOY@|7{!nM}4WU7TQ{ zO=n94*X>EnqCH-PF;=+^&hiD~z)OU?SI3MN`M}X=^@N-U{y=$c43_b3b(UhYZO={O zz!bC;`&uJH)*FV0Hsw|DR6u#^)ay1SghBjf zd}gf|Dj&dP*jUrcSC|xu?NaqT*7SCr z60d$wdf$}iFlVt5UM#Z{jb!MDo_N2Xrrd!jgIu8pk){$v8iECT!M)vw=Swv%r38t_ z_>{NRy^!@rsk}w?jEw04%0{v*OX1JZ3S~(Pp!T%-=x(!Awt|Kh$pH4#Gf4gIQk3aE zKiX-N=;lohS@W}@8xW6jC5>!wPR7}8owT2=V`13xtPdS!y_zQ3=EvT|W>qSgxQh|K z-_@*x$$yvOhKro3dnCJv2Le&^H3T4sL6Zvx-%Iw!Rn05Zu=GbKyxry4{UoAX6P^Hg zRTRTcqWZS-Os1=W**0Q=&1^h}IIZ%7cSW`;wY|&gseM}X3ImqPc0=%`jtdp{I1ce1 za}Nxo5Q1E5nkH$#wjxpS2)uZqYaEh}R00q+s|p&b?w4#;v8N_1d;tb5%ogT zVsYYmQMvuvorpIB<(7_^VQ3MTe?N7HcUfWZlagrKj)X(800Ul=)1)KH&d%KmlL#IN z{+W1Vaq28bSNPwZx!d463cnH0N*+MW>R=Dj3zgx|mhg^Wu9O5K_B};K~;i(?d_SiZ1X(j|Bqc1hX*zmZaJh_NZX5d6@!jAzGT zv%gecaw2oKDe|e*O}TS~iHO@Z!1#ebaKg zn{!Q-j;(H!&dTRWSNfQoR4s+!cE|O$>kR+Ik56Amf{%ypk8c*EF2dS_Otkw|7=6u7 zrEUGu5G1$DR+U{Q%C1?2!mj%5mik29YX~Swe$&xQbyl8P>#sBW-S%rA0Vbqjl^B>c3^IEy3>RvptHjPC|Q$5VCjRobEnX{mE za^W1fJJBp)MAkqL{@J$vn{*b`S4N$lXW}aoVdQoVt?t>}jKj=1&PTNpjS;*~qKr?4 z_Y>BFV|LD1OecIIzdLB7rJ07&!X$+zi~h#q?RfYWG!>iQS{|RDR)%_(sUd7Zp%)K{ zhPh?Mry^s9Dd;$UrDFc^7zQ#;*;kIK{`3YrN&jaEjW5X_POOTZ8)5Yl&3?IZfw8U} zbhA!6PF5yWU+|yn(9$-xb!_Xg@y9zhXe!|Pv#n8xk;(AWtI#T_G2E{>@&RN71ycVQ z6f5PpnbVl$0p<*HMN8aT8GkMMv@BBW=wW!>M&enA)qRIbUOaNm@&g?0LGhHN_*#NCEpk7E+TzP>Uo94y`&^5yL&5#2L zXmV#We;)I^q*mt6D0tjowS$<~R`r&wJ=`+nfEVj|V5c8S*NAZfJ^WO~h7fX}=E$nk zwZ!&)$Rw}|HhMp1$w2QX96uK!X1qvqDbKQ>JMk*^t zm9h^@bG6`x*6>T6nzuZkONy0r@KS&N71-k@Y|BGU-(UFmO-6wtSG#vRz@(!E3eK9z;#_;zd zC@Ge?wCw^10RNvi;GEcfQ;&hoN=i(fm=#sC^f!{H^ZRYdVF=5~^+}k58t2u6mqEmT z4$g>iECN?ItSoq?ZEyD}TUCdy_nRedmjcsJn7dX@XNFI(9cIBcKiw4Y~6gJ^2esc6DVH<7~f}V6v@L& z-j$A*uNdwrPwkqXnT{B*Z#_4;W9i^UI{yHaQD{}O$+|K5%XH7TSp8IT%V zzATYJ>p~V#!;pxTGt5fBS9I%co3}y({rP+G9sP5(dvRF=M~Opu;4AuM=>~H#6z$Qu zL*S~;Sj{mlGoRj|vm6I;kMU2;)5E7aXN~AHE=o17bz|37|0Zr^o2b`5vG=JNp5RTU#a27WdbU(q9q8^2?*OpO{#5e&9z+|=&E(T7>#s1II8 zI}p&<=@gt%j1p?7Hj3G+_3RLQi-cfaetU(J`{NBBMbfxP1Vo{5oc@HLE7TmH-P||8 zXX5lWZ&hz#37W18AA`8aH^45U+?K(fg6R_~WI|VRKtrrZ#M_R81>i*yzpfSoqF9a}ImJCi=*esF zYSf(y)XoVu2gg{#M5j`Q<|{FZJ4AT9tXs+qG+MouLj3FS)X-uEr-aC2G%V#CLu&Ti z=ZuIt1(4w&G6sfu{F(gS^TOw5*S75jRrqrzwbNm4Dq}o`gO)XRvnJQwT~MHgNeF$U ztB*AaAa6Q|E_7|PT4b7`L?4#N<8cDiZ)Bf6lF69e0FmP+0$m=Ip~hT9va8cAJ`}gy zpropam`c_;vB}XLm<7HTfM(yzH4WL+@3MdqoJ@r+afOl`pO>S>U*V0_CaKZ40R_k7U<7`cw|WBJoln91?+j|_qbZ870= z%q^Ej%Ai8u*6>Fl=F&#A0vPPhhLYhf3M=hts85g^| zMc-iA*Ei`kj$Fg?lHY}HWC3x5_WaXpUUZ{m1w?QFAm6||srs;iD~5l>q@6b$#QWW~ zZV13zh?^W^_eWv(itK7D%Kvfev>8<02IBk^Qd}#YGy*KZk`s~RHGDtpgCXcSHRkhO z@;WV8bkr^nHuLsZvu3Rqfpm}A|KYhxgc}Z$|*<%*FAMn$>0eX5hcU>uO3}Mm9 zZlr_We$&$+=0^4JA5Ub*fe2`dK&DU*Zal8Z*(1%P*2|2THu>d%;o)yW)EEvyzCjXD z$&c3BDpxtv%8p7wPF+8s@VG28pnIB{n~oQt>=)3QNB@P!whS{k$Vs||YGpc1YBNG%ot8uy=}=GUky* zlvo(o`+;R@UN1+Sk9_EyRN4mh}Lz5GKrXu!^-}8=jq2pyq}mk*?u=zJulk5Cx2Z5*RT?kT zOFZh1p#@@PcKX5z!(sP&>X{hs9K>y|UH6vGVPK+@sB27jhPO4*V3Qp2Pm1s=X@PT# z+%C2i%~i4qnbnek!~I*Uw`UaL6RXNreROyAAc%x@k6rIC7aD?MPC)or;uixS&B{Gq z4}jo$Br$pu?G7tve9t{6UA0qSY27RkUxonoP6h5@g)nfRb4`daS2gq~R$H5?1-m}Ou$ZrFyvk}SRg{o z9PO12)e0$ZrXCSx#&sGlDIng3QF-4yX&)oDOXkWurp-5-w!3e#TN=UfXfPJD2z^a| zOx=#8IlEL-q`092M@x&6O@rs&A-KgZiIv#3L%_E~u50|+EsLM^Ksq8skN})n{QW_d z6C_u>5AkYxpeT~rN#`%1*`ix<42kNVSo@9?@0VhIE30D70X1$1Rn^;Hz0ARRyyq+p zF7C>Cb*^#uvuS-N-i}>2H5*j3?b3JN(SY@R3EOm*>=QbE+o{HFeun5iW$?lc7Hfy$ z^tQ5oW7+ScBC?_=4#s^vzJJlSbwg1eOa~**5^_a97G5_M4+j~Wb4PpWiby6ZtCk-B zrSE}5CrV!gihJ`wgAnuo$8^rY!O_jw&DzmH!`ju_&Cx~8-2A^Cm5Cewh+P=&ISUcd zrpL^~RALB9+Uk$Y55ht-Wm3lV|B1|eYpk2nUbscEK_Bs@E>ET<@5g=%U>Pz27 zmV5^lt9tEIwdF|HVd=Y5)JN7OrDa|Qt9*1h>=}n{Ev;Aqv##!! zz#&=8_X9$rq)c#vYKVLP{MIMSMnZ6)#Xjq+2xB(UYZp`+d~ebSt&l{1@C_MFiIPe1 z7uJSf>zRdbd@fu$#E0hFmyV>CAL?`=K0 z49t_)aLNdgaRdA1f<{RiZCY}{Rlj4udc`e&Kk%;Q3$akMx$U1s!ZdQ@nAuK8VdV}X zen4+DZ9w|kK3#}A`yQ@xv`!AkZ=XLzAFL;htHet|f5cpr^i4%0Sv85leh@VLW|AqW zXZRkgH4d4&X3n`x^uVs#*+Y-U!%3IQ=s*m9E+|Qf&3Xiq&^J-kG56Y=hWGw&*MGRZ zOoWetr4bM0!P)-bCGwvFt^dkA_#b-UzZF`^O8km_Oh~>Way|fN-tgiA z)qatM4H!)(XX6p~XG1wDz}pu;v|XuzxImfVHV+TQ$IHH4!z;os&T`P-`jkV8D+qp4 ztKYT3$R63SH}V9pt@aQ5eT>yB3J34SlsM<`9#Fpo&&m7p!b1fY3YHv9y@;cRE|oA} zhfWLf8b;NITmWELL{M_&i1aW%d3R-!R3Co_OYhLwVXorp>*RcXG15y5z0z=_E?`gG zXiu*3G^eAaJRWh>mhp?*AK?h{PAKPqg2Z%K{+65D_3E-;L(CTAJX(y7nXzl7ZS@pS2XI!7^48%~H$f3WBB4n=M9$hR~JnZQc{oyAeuxVhG97 zA;WNy^ALxI|NKR5*jWd+z;*B+mVN)?gXQ|)x;(~zC)SHr1$wOtqkSOg=g~UkAZ@MUeU7lsXiiEGca^33li#4!IWFkO$m-E^CX& z*;c$a;*N9;D4jwCFL z|CN^5ts+;sDz!spkCvl*PZ*YvQOiJ{l|c*daD$l+!F}Qj%xYiPj?A^WJHy(AO14On)Ux%iVAc>Ts{JDF|i^>-&VRsGmmAvFHf zApN)v2(={i;|RhrjFgWr(S$2v--$C?LNRkgF9SAQb>~vEAJe-6c>bm%oO#yG~3Qc`UFbF`RVtNqc^97d-|{*j>eu)qkGlp102l@d*kXwC0a z&9xIVhs{S(oSqxCylR4y2c$>Xu3VQTuPs590h4HiCvwbY(+7I*utH!I85zy4J+B5H zpjr>y)oa<<*6xqI95bY1(r%5+jtwH-?= zjs1ouB-xHW#;he>>I@;`t zVA`@PLuVi@eLy^Z0It{9U}42GT`zr()^DFCOOU$UlyI;C#8&?tt6S0 zhj!ZQ=$5Bw{^yutuj@;ZVV09YLdI9K_7zu7)}4u%<`4eg3uVYZCXEs3#EawqQq$pBcx21 zZF<@a(zSWePCiO_3cKQ$NxXi*m6gxhjQn?>Gnqf;e|XJ74D}LOBL^efPO|Uam?QJQ zgbv)Wr>uu#`b9w>uC1--*;5u4w`uUOT^v#kirqP#>elzgzQWq?#VjvUXFSUan)lNi zrDmH!8={A0u$WYjgr;X?7%J22PaHnib75JtwDsg(+M2bh&x5Co3c;)OtPK=0t zG9`)n;05yqzn2x=B1=aWdCask_<@t>aETq$o*qBKz!OSc^zvm#L!f$bf}s3R0>r{- z_Q_kIhQN~so6m+GPzQAv@W%7u$NGzX=k*O<><fRNdSYWG88)6IU=m-l%R`;GJd_!%moVj~Z3+%@qbvoRXo2}m0gWi-tusv0 zO<&O`dqs2*(?s!_!9M}ie0g1e(7lWGY|~jG`JzQh&&MX&${{sFx02%!?Z;C^3#&=V z7+4V&CYBh=y~mt~44q>F1O9n!zMi-g75I84vnO4ePLkR2EwFHA&RN2e@E z$;_y~B}h%n-Wr@8m>w?-8HT|hXDtDF*)i`t)v=q<-?6VI0ci&>Pe@|dWNx|*JIP2d zqu@3+E^TIF`qlWW(H9U23<*dMNOz>jKrks5=33Cd^;)X!nPYn(7`y-u^M9jk{d)uY zpRIGW%9>1{5E4IXWg~ObqHLqO?tPCe+ATeQ$L@j5&Db8GQBXe}j)j%TAxM$Q0y+|=fmzDm2OxO&Js-n8& z32X1u{8<3ztoJBhW7{PKIH^RmFoE=vB( z7As|j@jyQdEO?)PeJux8@$lGmA7=4nAFs4lRY(`~DTzuiT+te5u%5iz{=LcCo-$Nu-2nv>G#O``vm6r8$;A3qPT=%S}uyUTk>Z3whozSL9RThyZiIAdA-6TmDOK z@AsoEMSsw=;Gd2Ib?dHXq}hyU7kaDonF?lwYMXLXXcIDK1J%p+>L#Kw;7(IA2}lam<3!vk=E)*(cAZ_%INr+Z@*QFBp3~?H=udxG}F3j zoCle-Ez}q9o$^-lF-Gn+?dcrACt{;{tr5}UAqzid--9#kl$AJY@1z0Df!TYJ5U{Ev zedQC@KxupdDy4L_n%mhvk6rc_B~8GuCUrec&rH6eMwj+V53hzsCGa8xDwrq}5tq#M zc13slIDzK^-#`xXO^a392^%N9fmFU#x5|X2Ml+1c_L$|R9_P*F!o-Z5Q66`d)Tifu z=dC15%j??Erpg5kNCLU9Cv2CNvfUb3D}A#i_`4^Zu&j1`b_$(a9Y?2~Tr5v1>}Ky- z&6};~WQz_%B~4dve%Pi)eci<>jaf&5QFvuf>@T9GjdzmgYZ2Yt_4Wr9Azq5~$1jiG zrw_#5GGG%X!eIPnAG6*~%KV@FL)5J$w7IeF&r7RWhP9MjedKg!Z&PT44_tjI`pz+e z)9pb6ijo8D_&|=!rQ&A*l(vh|VWn2&9=E|UA~lqYc!H7*>_(0tgYWP)(z5JD+Cu5T z{?e0l=5KF0W9J}Aj;B_7+x_&}Ha16U2Mo>edOH-q6*PpQL))Q@8vDbldO?)OQ=3Hw zotEEl)PNNDEn;8I>j#9B%!n(lq4v1#x!oG|7>_@`bocR}g96)P)^A{5{>kvTJ~@vi zPAI+sVm#RiQj~!F-z{N|LV~%a+~#?>V0wMJ!(q=5%pV|quuRbsETJtz_L(M`VP#!&l*J0*TBHcsM(nlS;!PQMSU!`w z3VniPcQKiYU>2FGf>SYz=5grr*+J@po0lmuxR^xlr3VX(Qg?AS)dhZg&;FPP862d1 z>1B_S04IM!|DyMZ!I^~kLk5v;fQoD;t;R=c9r{X%yXTQia&Em(c7*bpGn=c|Ln6jV zPp*a-e?Uzw#^^|DJp3c140(;i_yvFC158sB9>J&o{sMC9s?!HP2ivHC4Cm&X`Jdz| z);X?xfc-WF`$OCT{rcjk^7bUP1hcY}hQbHrk%RLg27ISHzG}x#$;kvhFxbGwLES@F zZNsjHX0I~iSy0V)=;cOjW2ma;6r?b_;?l)0g%z>vlvv%Y{1jQ8p8{0yxvL^|{O7Mn zZwS@CJ%nx@vh|Jpcli4Ev|HI?Ld9TPB@8&*_tNt*@yXl5E729QniE_x32dd7~;X; z*Fk!eP&)f*4NcV~G@kc|7A3Wl9EheVso3{L2*SkzYgIQ3AcY8Tv@9Zo`f2^H3|tH- z{YYPpKmT^+C*_8uO$a#uE`YuC-}F%lD>GZuzxUCu##=@^u}LdJy?6ltt(f1z|?D8;S7JJ zjs~xX#Heiv$4Y@O>Z6*9i!;m)Fbchph?KIluj+aT{!>JbugKI_HZFgXNyBU!s^^Ck*bqE{-OnC6fx20GlruWEEN221JJKhB zXdC+00SBNy(3m0*JP#(u^`b0a#g&%Ps8;n=wy!)}8;oHolVQU^#~N*xXQH!=@SWkD z{+)nhH+$?|GnFhd)wEuHz>6Wx)6`I{H-!AQcU(2}PL(KdBhfX1h?i;-nIjE)$7B^- zjw$w8p5`UkQ0W5+`IGVZ4DMjB;Rr|YWQlJ`#^ez%LM^KlO0C%My&`BIA_r>#laquxv2^+gtzK2W zNUTI2)%@g+7%hZ*r@#X9^zCnSWHU2&QZ`0&Z7y1Vt-y6 zXlH|ha=)fpx#G+9MAwpo=87ziq(VN=7rn@CWWW5)FSBii{#ObRaP9z~fANI;KNI~g zi_Cvy8~+Ju9{fL$=GJ^d)Eip!cviwZi94i(1Y}@Uf4$gyR)2@9?`Kif{6301q`3s7 zu&J9D5qT8A_Q%LbIRx;f3nxbaTEB-}JpJ3rVt=@p39OX_Gm9g{Q7Q&`DJZ?{KVZ$g zWWYHQ1{hSFsqt5czd_A5rwlsl>g zfXsj<`=1c%zb$>00>HpXGc(5-951-?CNYmOtl)<`Y_mRrZ(5TOd+vZeDGjpD>8Q}Q zVVWnVvmRw#WjSkxO>d^;pzM4w z)l@-ijjFGJg_xhVAAfsQ*%9EVJ~1Nd~y!$iRJu^;(Q zng?@QbXYBDjiGRYw$SC(9%>rwbrnQA@MfTo<#dj~c zGapVU2syC9*~aub*L(1sIQ|f19k_Y_3?J5EBMek36#}cxv&Wn`jEjX)%&4jPMcDG* zVF(O*AE8jaM8fzIyH-MK?Wg(Dx|NUzD>Y?_f$6eY)j~SEpYh3T8rfAzb$C^%-14(5 z&tna5N_2nh(~~+p@v*nW=l(N? zj!CqNXAis(7>M?7DXPEL^5191PmNbiTyeB6I2h`Z4ngVFQ6LfkP!lzx#Xg6(UTb+T<5AQUV4dfDZQ@L!)2ON8wC zh2X>-huTL|vmw8iQh%~-3P$G5e5??$&plAwD9gq*DVvZk%uEuoOINBB=QdVZpr6Jr zQK7YP{JgF~Ey-9!!-*I)zP(o2kr=yYPDePkErDDe_?=mqR?}Z=OPV8HMji4-z0#DN zK4CwXlA#r-tI>oXG~8ljO1Ch}I>>CNJW)&+LJ;-furPG%!Un6txH05I?`r~G+*KvL4Wn8WLsaP&;gwNSI#y~B>arS}k1n3MWgo;Z zBGxd)!cCg5hY8VX9#od$b%ajRvy4&~0N9=-Qv(b@4 zVdvb$>LdKcQs)!(5h4JjZhuTAoQ}-b4k1j>-AKK+^&hqs`wz)@@@S|1`yHccBsd0w_L-#W(M1U#i7!Md#5=y&g}J#4C4ZZ&7x+m>9r05{%E0} zDts<3A`la$j-=Z~-AeIC-It7+Cz{7Jzgj4+Fi`6kZS?X3&CskPSi2WAkRDNCH8cly zJnF_PtWTd)i$YX5PkaxbK%D6-8L=ypS%rIQaHZ|~s7G4tEmd3Zg3KXLOtiIgg;vno zvTtovHijWjV&vAR&{jiD>#r6h(u_lvL+yH>TjBw;`rknPLWEFv!)@pjj3lh<`udu@ zGfG&wS@W}}RdE z%2mWTe~Ilig;Z`RR<^X9QLqWNDNOo_39!loPZtYnbUw@gnw5@)Tt( z*TlKNW|szF=1iJ`i~_YN=_INch46YXIa{Ki=sK2b^s8tU3*DTxdv7=@MR{74E?j}e zuh0&t2t>LB15d(ty9v#Ggpy-p165w%%1jj;j^ zh~EW-7bxjUPB9lHmCEx2w$b%WG*3Xi~r<4|8{&Ct+EAF z3?Y3S>Tv7EV89teBsG2H(FaFfEAPQ68{+uXTJ7#V=uMIj<*ew2f2RBh{tf0I;Gg8= z9!Z|ScCce^VQ=1jm6`tjeslx-8+drBsk7R`6_v=Qy0?szAKAB#H`M2!GkfAk5wTl1 zKMS3ii6o{afKo~_8LY6UxJR14j6^PSCRj_x$4|?ccvB`({&TrHOn)k6bFjl=WzF%SBpg6&6M(3N}Bb_B|?{@pqYxUSm2#mWkA0 zt-^YXW+gm>4oNt!*?LKj=<^12xegj9mHRfXjtt53nTJv1ql1-=vqth+gI|QKzBxMc zr5wH}x>cll|MZ(wlp_%=lPj3`MfY8E#A17J+=1Is^nvmkHf34h=ooH@T;S~8h3?T~ za{Blx$LPM4(Wj@0U3!mr@yiuA*G&!>;7`Ik`!%LjiW zwN|A2d~fJ8;U z{@}vJ`qW}@>U$V_ABJG`VNlk4Cm_u3E4nW(0^iYn%&W@%*hj?=cZ;~8k@|;E^Uvq2 zrJEhy?|LP%l|eq4NUEkw+?vEFe0(|76N0e`u1~lktRzFHi34w5$+*Yh<*5GJ z8AZbZ?P1>Nx^54nX{Xm~<|3OJ{QYo+k;}!R4`jJsX^6ug)z-nctvy)8E0yWB{g&xs zK+<-(f)I-26c#_ifDCa$MC(D698n?0TO~F}Yibu2U#iRZ2Yt>U$tSDUJb+RXA_lW| z*d|f2hRfzgHsK3CLZ`HYuXS__ zX*=JNp-(8?xt}lci*wHbF}>*yDVvYpi!2InWO7}GEbsL zwzkGbCjWH@_GhxL>YNZ(Xm=4cJw!+WUW9m&maR}YNe&f(B~P|hX(6UM1C~RR9aRsT z(X86wCmB>t)^#t?E6e$t+D$9UHi}D3sKRPY7fVvog{h5U%0FJsv#x!j-nd9XpVHy+(h(XE;*!p~VS}F1?hoCl-x&p@1L$5KjgaRyODSh7oLImX}C{ zk&h6rKQdS2KV8zg!rByVH!+pfwZ(B8OX+>w*bIP4qL@mNOJ${vbfTmbH9j7io8sIC zFf=t6x*U(7i`LHY1C2Q?rdq+edNd>CXnX7;1LBpsoGqpLbfYbB!Nv|F6)7vb3mP=e z5RJ(ME8a>0ih8HCx!02WW3y<#*k_Bb$FB$Gd95jt)dtY|CmJZn13xQHdQ*1(MIOt81C{X#;J<(aqJ-9vACO*Zg?;ZMB` zyDX9F|9jZuJiIpAZ63G(0kR3ABlLKfY%!DRFjCMMcYuS1+83?}cQcOB&3iAdXctgDjfPQ>Mo|~1n6yp#w#TLUkL*au)BI#d0GA}62M{fNRFFL?&j8F*} zdk-%^cCzf33D7b^x(xG!u6&0}PM8!SO#mSop_}JhWN$On7lY6pxzFMKTpin#5<&tC z!a@@BKgxb>1Mvcnh1$+E_F>gp+8O!cGZ%G5vIy_V^JVMX;FA0^tEa%1Ex=ypzze9s z!>hTX$g4T_7I{@>9HNhS2BWe7{6(gT&&JOdh?*B)%ox$vYNjsks+t}7PoAorkOz5| zE*6dC%^&X&|6H1Kpj4+Tz>+io!UEy{tu#&k<0|@p*5m(lf1vZzKi6h*OpgqhFd+1E ze${R%Vzbk$HWk5BpHC`ZiHfFyF%EyuY;|SD%pC2-n*R>Or)*X~Uuq_jn~eDR*8iF3 z{Nc-B3x%md0W57XoQ*R&e|v3(Pr017?tN8bFcZ7+R%&VV(<_W_=C4gMqTY)PL2YgK z5U+`)0+S%P-i@u&JqPQwKt6bX?f=HnlqvgJ;)Zv9D~`RUUV zzS%;8`%Zv7D}KMzC>L!v9?E*uuSge0luzt2Esi@+4v6E>htk}7M(Halv1EsN>Fh!N z=l_Ne%K3N=Y-uGxJJNs2W%xf(>aUjefBkQNP0C_*T@O@Xo{d7aJWqp4KGK@Aa$e%J zd+j2eJfl#?vZX@?QaF_p3%7KsoO!)DMb&_yBfX)|4KNA#oRv-<9fR)%*wtF6OAuAbFazz*oFXlb(MaT~Lz@%m*(mC7E?tDtZs z@$*Tn?}7@eZ~aSmR6dVFQ+Yc>v$szW0QLR)@L_(9M)akdl{--xzOcf&xgeYg!2e95 z>`lYq&;eneL0n&y+1B3cDD6jEWcq`cic%IO)QKtvNrJ2&DV8|E154zx`jUz6Ef%T& zS}EEl)cRIN{}@Z-;4PG@!nn*_l)9zKo@2Iix?)Z(!b6AeJ!{9^E!M_f$B{3nFldkK z`}}tGlA6&(TwEep02!VniNZ<85R;4oZ_~nVledMeUBXuV+sl)F!ANQinVhjTmU31e z^=Z!xU8c8?rv8Rw0oMSMLo=15LNk8qPS#r}$mS4~Q`TU57YM9ZpV~&#L?PD@(?`K; zvU?|kxn2zE59CwUV!_~BHa;3<=5kV22eG~(VwPWNs7kQ%^)}Bup`^}+yM)FD%YO5z zo`Wp-n(X=&<3oVHfg6P;r4jo}v@yVt1K@nW^ocH1(J|iWC*n1T{rBy+bj2a&X!49w z8i!-^;*kygNLZI>iF@>W0>J7Jt;vF?$Gs8)trq&6=MSUPHkFY{$u-P{%^>=rUKlQ@h1lB0#FLdkdOz$N1U~Vz{w*- zpyMh6QpM?iJ{>Y@kq6!cBK|3)^TrUPZiQ}F|HaQgS2~q`vPme| zeFcKmi`SR7pL1D#V!nb>*>;3AtN$xIf`LX|HkTpUymeqKbSSc0vn3JB3e@CS0L5w* zVTslKhXrl#ZOdFRk?5OeKtAGNXwS4)8a-vm(Crq7+w+fN>W?2pRn(ye z`{G}2O08u|Q?R`fE$kzRqNK2h8ziQqQZT@$F@#Aok`^YBR7kJ~8Gkb|i;#fj9tU_$ z=JiZB5$o;HJ3DMJ92C)FQzW)_@OW>qm})b6#>5@meR?L9oVDb$xv?~8H7VX3MooYAu{Ss4$efx~#QZgZWnx*q*umcO z6Gc?==1CTRC|JZ(EZam=o`%r64^Q-aCpEWnB<6w;@Iv!Vv5r|XFI0|WPc=71E~+)ki1cV$9boBz0be6P2A&O4 zZR^WS+9??mAC!+^*$~5wPev6)2Gj}e0;Id6_SqH%ZA0|3rvDKjdg(2ks(QPEkWf7A zYV3*2+U`eJWU!>VUqD+Jq!)~SBqG2))P1_xSM;2fV(()4IS5JzznRTh+#|k>RC?~C zTfcq!tbzKWHfBiY4|Hao@46@lT$)%$J*50NSu&(bh9=gh2_wfjQPAnB~mER%lUk#7ED|?{A0J-PzI^EWkjQHPrtf)A#>c zHvd&LnqmH^OZcBT^tv}r0nE%_$C=KI~l``}qq#&<& zxbq<`N6x)peu(+}>@ta_jDEc4pjM!OR_k$>z1;9ZycKk7GG;PnW6hffP0bC~yeG|G z{QE|Xoz9Frtoc&&)g|EKIG5;FSe>b|v)$q|@FC~Jm-oT7;gL#f{aZHZPOu$#`$SnW zFZCJ`CVPT15t|fum@~L^rgXj;byM-O4MB#swPV&=+q@SFS&&(P=wGzRg$=PUVD zMLwM=#lM4oB_^}EeWxlzfrUoXzb=T$%dGPj-zL)~ag z172dhYPlS}1|EwvClV`$c7BanNZ%v~f4eqAop!ZQ3*Q`JyH@(uygyISuF!v)%^0m^ z;)e4$jp)a^3ysH@P7;3vl$3$8j$@M_C~~OC zi7%_t+WaEGtNHfm9y{o;7#J;C`40uTJn17BU~;iy0t;7peaDu|Hw!<$p`4cl7h+(!IsEt z1YlCGs~oL5CUz4On&TKmFO{`GJ-#Sqm*2I58>}m)Vo9ocMJ;N)!fnS|JrNm{?t)~g zO`rKwyB$J8wl7@6({y--*U4ol^K7P-InCRgz+*w@ZH_(28m{NB0ln!US*be{4C&cA zupN+7H%F%}SY>*CLhx+B+32lgdGl@(J6~qgfthw}ea)l8)O2|d$vAAkCdeQ59w5)C z^+_N>Lyd{DYc4ErG2-Ul*r5vxDfhaRf=7t(@#&6mDL7aPtwQEEmpG*ujBVQow?FlH z${YT^W7HQB?#$!sJ$0ZMA{ZqZ5*{np$`zP$!r&*T_r_(@n&>#i<^!}r6#@Lm}t z4!E{LkKJa4P1*ncwfpQt4)ZxnceEa+;H$|_1u7v@StiFfcD>)?=($7Wn3~#;vU*mY z;}Fy68ckMpCj(T>7_!Ilelun4KEiTlCZ6kdR`ueRPX$cQ07bdDQ}?8zCB0cjr#zOQ z@%_k!{{0R3B^5#NAI9*eJcYr6-9a_5C5DAHwm&BQcFD{vpF(Lbq~pCc$W#y5e8x8X zB0@MO4Vd)FAH?eqHpj*>&7}Jt2h_A837Py_`=a_k6-*p8NzBA~YemfI(j!0(d|`Qd%8*53o-H|TGyZ&Y(~a4cY=!** zM@-H-UW{4jM=L3edEG0_w#Toko-jcqRA3ehoAd9kwyz|L zj5mr;ztRjpdY#EF95$T2An>63FHuuiO}Wg|=F+}2Jk84l-)q&_XBwAXAPc@V9kbCF z(vqvt{3>)mdKixzkk%gjEoF>7ar;NK0S|6R6awun+JQW+$3us4DeL|qF|o_X83T&O zch@`Q&OhwwXs-h2_URR|OP^S;yF%G_pws>`L8@XrBnR*d=H^EaK3Va8l5K{F1ib#(9{#;b{x^n;caYo*`(N$)T zZYf5z(UNx5d=dnKXdl)?RDR_IZkhhP-d_3jVp8mG%x^qCE%xt2Hpy&WGE1)&zCjPC zh07#43tjA1>nj?{Z3aM_d72h|O;zQe&bP@X(7AyaaW#eEIcmwbpWY8evE56Pg)F2+ zaqwgm3 zhXfKk#4)cCX}K)Zo&hZ2SLlJO6rqovnWfaxOBx%ggJ)A;7r8oo197IP6!gok^@cM# zCOZ?@%|h6O;w!^`%%ZgN$T!NC{}F+_i$)`zuTG%2*txt=YfsGW_ejk6Wk)f7=4qf1 zF&Cv~VuIta``KK4UEMi<>T8u{ZPY+N;p=*AB9_bHOphtl2^n-0GsbSRKS+ z0(o3JzI(uH$(?-JVe9&SmC%(?{Xw8f{>HRI#ji4|u}s6io8MSjBsp3n=^lpzP$%zw z%ZXK*MS6s!CYJfcqX;AIz}=J15@>VtG6>JwO7vD4^Tmp){{eKyMYNA{aWh~db*kAVhJ-JZu84EY<*lsQ>= zKbpm?c4FT2x_tez7k;F;Hb!@k11lZI2r7*W%oGfQi~#@b;bU5^@JT(uSA2nR=+Dxa zC-4@JtnBcUp-M8#Tc%=iyTLbzPpE%pL5M>$zdQk%BUGSx@Lz)U{?3A!no8SSx&B|a zF3GBE_Q2Bu{>&ojy)*;R1|bzM;()yrt^*1sU`Pv*HZ1f^Ma?!BZvFPT#sf!C_YNkF zaHQup*b`NM6?M3*xS4FuMtU}@%VE{SS@V?Pmj=h^eEQahgnZ1d2(hg>C!)msh@l*; zD~Zj%p5Lh=4xdpsEp^(UCR#6G=oM++`s~}WgCaHrsc{xsZdY$})Z z(se!}CZRWCWFoID@$-|{@EguWK|PU#KW}4p+%e!Vm~~7o%}i8!zd_PMi{?x(H2j$P zH4e%do4y0HL@J&xx=^Pqy3q?kH^UCgt?aKm|`wu zNA~Q|$Y2y}Md;z~WPtundTdzLy*}J8rOFgr`5Rz2w+$NW(W1+jFOuWurPA{Ca8}L` zztUv$(Z>sAm{T9bX}+uz$%^8mdrMnDD%VVyeDYUZf=sqvLXG?M4uDm)Hj1)+R2zJ% zcgBphh$OGy*+!hp7x+fDZBl$9l>4V5ol*P2;x_0cWy{t*A^h`NA{v!`_y96$3qVHg z-zen%V$}X+E&YY(lm9#DCm4{fpxX}$p);y!hXRUf-I($fooZqJ4{?!_4mxF@JXY3t ze>$$_>+w{XqQL8X8=KRJ&iw}A!Oc2ghc$R$EIZR>YQ=lYWs3XxvAcTBKSr z6=H*KRl@)?XXgoGiS|UJ-1h9(+8Xu{N^5AcH|+8X^KH}4D;&8j^d){I4D(&iV8%MT z9}AWWrYaN1f5ezJWr2YcZsX*kXS;;|!l30c;o%*b=?aTSywJ$nvI zmObQ$mas+Yp4uSMGa{H6P;acZ7l=;FYi$jC)I-O_84y;0_Vq4FH|w%Py0i;_2-?(K zcYWdU!zE@y?L%>Y8l&B@Sdtk{(C~zod1mcsRAEmAg3a9J8xFVum;eoqYL1EdiM1A; z#>M^k@!sl(0;2wOAG=(EJE^YUq^6shij0x^(muET}|0U zw?=&McNXIlmeP&Gs~If_?4(C<1d<|9T85aMhm-5<4A{;k>M;y5I_T(@l>ab`PUUZ9 z{Glu5(xgT+)%7XZ4Ww%fS7var$Ru8o^Kbgb1#}CSAn_TUW;ca^4SgGgbKm}j8X)Xy z^IIE+YiOEyeLHGL=iC+iS)e!Q&ewnA zVT|hg=NrvpO9tG=VQ^z)-)!s$Sf5Q~2`sUPb`0LPB44peW^hZoC3oWz)7*(yD_g`W z#k>6q=a77J$*o%wus-3IKExDv5%1KT3M1kN_S^r|U`dBwe#B^@C)UK`C7h75ya)C0 zuWzmQeV@Q78LISLzW;`PtL~%Rm*~HV;*RTXg%9ib2fbd%w>g|#WhPRa&LpJ6kH|)l zq#-80Vr|+nOu-~AKfXB-=BC(red(R`Tf>|O8*^M%88Iimf=1oUeN_ZzjguMTsCfaS zUZ01UugEg;@FN5C_+cl(zmoS;;U@i2Zu;*tn~E zUI58}6gN-4RF->swx|d_lX0m6RUnDm7}I%M07ufP4KLnHg=@+D#S`H__mf(9&X;>2 zwU!2?*8W$9-qaLmwCiZ*?E38==F@-m6xF|oHBnI75fLJ25;COAOn6iDYaAg`%wn1# zjX0Wvz*XDOmX_A}OJjAP2U?%I0Sj5>TA48m|GrNpZw_VXL8yv^^p#5i-xK z+5oaeEOXiQg)IFEDlKyb7rV~=^OTDMa}3&)l*uE))dSe(jnhLy#Ab4)(0zYL*_2Bz zTJbrz){TH`W&p=j>iV4FG2kb8=P-U~&P5cHWr_ifrS=ksYzW%74Qp}F*Jf7u@ix_Y zjuCNUyIb=SS4`|)8T!618=Y0K&V&dD=BK2ml&CNJU*3+t9$P}kBN_kUJ(Rr^uO2y; z;0kBBQ`$W0$T(mSZAKA{Pm`m@?mR{{!o+G*(4^ln27?D71F%ThbK9+XB?~JnSZ@qp zIQ7X7WG3icgcl(1f2-CR6B5l%e&9kR=DE z-<1+yw@=BPzUv*H_mNariI zs?1qM1nOzBd>Sis1Mp|H5RXxD)k;vZW**#cYKbFLgGmBIy$uZ z@p3&`Xi%(Pd?(${6pdX#LGm*D<;oQ%wLFR_5acWMkW0>Q9jB34`V#hVEmGj ze#hJgw+JLq^E1#KB!&I|kF<9TtZWUoMZ1IUbkwnJ+qP}nwv83rwrzH_V%zB0PC8C* z_QAVn?|0rk=f3k}{#$?6{A$$vYE;!2Fh9Op2q>{j6XT%5RkVG~0y=%@E{Ql43Sd07 z(Mp^HtP+m;kp`xv=go24y$ky0V_IE8pO%Ek5+iW1c4*>gaTQ0KraAWQJ(5mja$_1{ zV`JiQ{LS9};Q%sgxE3|+x&afbD3{mHjCW}`yWqV0beQE zEhA8Pu^sj|h7Qi#i>!x>EccPEkM}2x9PKnV8;h0w+*j7AyGEJpW{BQol-+tFz0pa*xrvGL6?K-l=lhr*V; z=LyNFXhRdANh`EmTnt-hykj)NIwG#$(@xNO&0$KeqNDY}fM`AFfHI#{yh(;53h)vt zihvHCitxy2N46S$EJWypp&vKAi|!pk;(*vIuQc&lHIjF=Az>-Y)IMmzMn$Q?dbfqz ztPq$;Ud3>Tr8 zGn2^u=OrZo4OkX>MbJ!0s6)8|hafuaW#n65NYEj`EIFiWh!%k@DrW_$s(khx+O)%Z zmV*q}BGjPQ6_2#M86T6zG&RiG@fpu=xMtUIf09&tgB=2T=Nr&`XLCvGNd#6mbRY+7 zv**f!S~2XIglDccR8zZbE?W9zB|h>alYh*XON+d?VXO@c*p?mH5(jID?kW~mjnBVM z?EBOJ(03P|UwufKocA_jS_h)OC#fGQ=>kDog&&nTF8xl;K z;r1G!!+?LUi*$P_59V6{+bhmBsy6+Q9m>y!XHhm(xFvGEtnQ^F@|K-^a41|TL6TNO zH&0)`b@HmPIsDRP$cAr*YT<(n+~Wv;AMiYh*duk_vTsH=>Buf?R6IDp5I0EDqgZrM zJylkFnN&p+p&BAX)f7hYF3YcLxvC)S{*jj#PJL439T-@9BnII*v~oc4@E#>gzh=iY zFK4QE^6eKfDuS|i{D=AwQ)R$5WP#CjCq`*&W$jZS;H2#wo%)bTD`5*6Wr#`~DOZF_=VN zy{;g@bMOB!cjZ~79I4p+rWZb+wo0`4(sc2qIM47KVvuI;3bB?zn#PuF=*%jj**QlJ zf{kCcVi-x+R^W9&xmAE^+0HpT?}BL-*5EO_Kqn1XA7Xjdgp8$i=peg+jKVl_W}Yup zLaT&5Z{wBVKljaY>3;3*e|EZZKg&ki|DxmdFQW#ZA7&TxPYsoSO(53OTNa8ddB?mLNVD~8Ys_A5qQEy$%H2-d5gq8TR`M|4mu<67ZR zgI*BXsG##mgDJO6xsa2mV|HSW>%1=_NB53mJlAX?AM8%DnOhbcnyb*Z>C>e?F6qO! ze#Lbc<4W&13ZV%da?bzsERSm<ba)^j zG!PbvL{z{7i~-_+e0bDYRNTtRX}+;SQsz1Rr*E!r2o+#6-^WaOM{is}Knxlw6c;vH zI&5=1r?d}-rfRmnK>wx(x)V1dPI6uZkTyiawn84h;T;ZZZ90+^ULD|kd#}$#>>dA; z1z{kFf+jfU*fowFQvrU+|EJBaDVPF~%^g~e3lV~+1rL~`ROpB>zi?N-piwV1IifN( z=+R@Gr*@<*c9RK$rj}*o{8r+Ow;&Lnw`v9fs2=y}F!z;-JSc1fyoLkT)#^vgDVtDsTe7 z3MOnD2;&R_LQTB85^I=#lGhIHCV1w#r8+WjQFi7#QgcQQs%pnA&8nhspo>t}+2%#y zk7^t8u&{}Zv}@~^A{NP^Hr{2vaOKq7Bb4MH4VnW0+^Q&(a*?P(CTy5fuj+Gad>t`X zcX&E64Ptayo2VISO`WyVk^^s3^BPAbC)A~t-J^C)UA%+eNR1gT_2?uvIQr!>Xph{1 zsb_-^OY!nJy`}OzLwer@P(kh^F$(dlwCL^`{UZ9E#VhG+#p8nrN~0Z~mXQlNBjo)l%mFJ;PnR~0_logp$i;R(tj4~- z`~$1Zgkc~12R(i;9F5QNhA}ES+>l2uV{}W&` z{M*Io-+|fl3CsXI8ZwJ{BC5b%><5T&5iLF)uUrm6P?&`5d8v?n%-8R(ygd~BcfB_& zG4-9?U%%38B$cIKtZleX9y_KyUEiLvetB~nwd4PB9>f^Uc{~9Crhpf-mMbyNZ zvY(xDco7iH0jQQhdi$1;5WNmCE><%sDyW{yhk)SjKvv~nJwf($74h*I=OlaPO z2scLLf(>D`h#|IKDKi5)jj}UP2w=p5GWIlj6AR)=#NLh=9s*7}blVp}v(#K<=C* zoQ5t*Xydi?Ks0+vj$#yJ*+j~5W&3CmB!buV^@xlhgu8K4 z8ZRXxY%^e$@(oXS%9FeHL({r@P&%7RpTLqRB6l^~L$ydV)GP5#%?I41D7hkq*pw9y zIB)~d|D3e-=%yoNC=X0)ia&1=x}rWrnkcN&b>-h>PR|m{lYED+V&B@|B>G7-OD-)BaRIqnLhyXt(xjh67qm_}TnAcpk~2`*MY ze)`bS2I6^V!8KiUY)Y>O|ME9Wy0;%MOL4hnyLJaqv-Dn~muS?SW15!3slr z6_8I(Nb#AV}q{4Z~yC_ou(Bym7v8)1v0Ig{DiXf5|W5jZsNieg6#M;3t)6H#F4|VRv zY)r#rl2RwV-u|2EE?Pf3V3P3Dl6ii{IM4jxUBR$j#dsHl#zhY;1?|~FgRWZ{0fh!P z?UWr`tjTJdV&a7NxGC1ejF3*Um=4kxZN?{&9QX!NZ*N2=F%0!i0@N!{h5{vWaG|rw ztf61_pWf&5&V7+XVIdg@GqwxNuMDFG2w7JdA%y#7mJc~wsI|*S>k86Ic&NOi^=Y{EDW;ObX%wlsGGi{{R z9F0Vt;l+(yZ18PP2a2`WagN3h7=c}bX_t4T5|n=9=hZNKlUk)^ zi?AlD6Li$bL!3J*Ct&Cz5hxjHj`$uXiad@(TX8F=ZeRbU!{|w5c5HY~fTzB8SY+xS zgZ$p^YrNo}*oyq0V2kM=*z$wYZzI5Q%NH33j|eAq0|+wZD&y^AGOLr+*8hbpzE5PS zkmvtIq1}8Z8OxTYiiWEiRXMkkeUN&1xUb{&@qGo;gJ6VSDw0!?t35Mb8qpj*WFT|% znQ;gwUP^Zg>bM(!Sj;5ep89C|!OLUdNAJ|VXSwdsrq!H%pbM#qZf1bCygT#9OTKBc zigQ$F#9?W|(Q|GcVjB264Izzcg~5**RbgtJg%o0u(1q1mv25%35| ztx9&8M&J$K_&Knq4xiV|@sx6rX|QLb+JxE{#ND6ag+luzl(qmId2zZK$r?ZP|zsU(^ zvJ1m#pt{|p1R#d3Dp~Lrv`>l`=8NI|GF3Q8yc{+L4TP>Ls;4;Of=k~3qYxE9MFBKL zj6oOEDy^hMFu@z^@04HUfr*fTRu}~0tBfT}3B+IS-j`Q-M%6N4RR{*;HLObP=J$+M zua;dKYwvam)lW(zy4tC#p5yR)(x?`-(7Xs%zr~{pQ{vD$l_76w>LS%x$ty&YqBGpr zf9^xoqb;$g>X~J%#aalH4Ux!vs>9)DPi%l+aB^LSyZ@3K&LkYLYD+E2t}x4Y)LCg6 zC@f$-XiV&zYUhFw;GwlIARAHkN((5mELT#YQmhkT92DXNl zN-TW&+r;ch+SbqvQMIu(%#xE{A*o{lO`|;;Q$G>f1_0-2R%v6Hm}>zhIwNpuI_txa z+eHv*9uNK~o~%p6{X-UGI2Z+G_2}sz z`+4=Vu@B*&Zu0mT|25C{x7zqWRC@mgF4ceaGO}ebiXVZJ>`R8}Bakv7ff9rNnui}m z$MGXo2roaHHetv}j{)&e+OKuK$!4K>(SmYyg2wC=L_Przl1AIQqH6IXqp2xETf1HL zW$T5cAr}1_3OCJjtL-84Hs^lxWn41`2ULzW6NHjLq_cN@0S*En$PIIyibL-zZ1@I~ z_wH{8ERKc0*uaRmfVs!0tG;F?Gzoz#o$6h|T9j@m;zf$d=}DlK%aSyBv+=H>sdZp5 zL!oUb(5vqpJ15Jex-4^HBN^-HgO$#8OK2Hrnc3Q$Uz{bEJ4w(ngE)=T6Ex*Q2?tw( z7&o)IcW0%NSyKx=7N4xXsETJaOvp#hm(nX2US6#;&Tuu94C%qr{ie2YW_yHzL04Mb zcY52@$nx|mja_xv*wpCyr0K%cVs(CFV~#pKNc^a&*^V|KMec7lZgvC>PUzu9M`B#m z>^gehFw6Uf+5WcqCyJVL_P7fDZWh|3uTRRLPaoU^PcOCD@9M@d<&K%RSltFIGNcd2 z`uWRO5u3P?k&ry@-e4;ksGYG&BV}`xtm=;n%NeHz1suI+y)$ z2X;@BSa)F{7A-%NWbRtmyQT}#5P|C^D%CPJPDAoyBxW@pVO5-$S40(zPYSmd^(7-umT=ke`W@^7c?N>Kp zSZv4J>uH^NMx~;Mi-3hE(yrb61Ufp}`QemcnCk|;8Kq3RL5)uY1760D^r-Z#AcIGg zW-aBk#;+>o;nXg@95ew_rteMLh%6VWsOLe%!yi&L`^IE{Wx;Z`>Wiz6=nn}r!4qmY}v7$*kf$h zYydXOvW*5D6M=|SOhT)oiV)5uVrf>Y*~E-a!NTe&T+`W4G*AbFA@E3{c5Q9%x+9)n zq*j%6CwVMo}-xT8;hu#vYX+I{2l8?Q!+A0rf!V&lLxwo z&`y}p0?{W|8z=b?vM@!uooEoJOaL@2N+DMkXg$L5Scs`U23^bWQ=yFe%XKN_STQUE z2G6m62?NaZjp}9?e+)~}UhL?px7g_!&s&)+_gO^=O|)YA)t@d4)awPGIXgHy&#TTh zv86XKs$=hc*sFN9q!4VILUEIvE&Exa-3fmU`lKnV)1BQ(Ahqlo z#_#U#L6ERBVbu=1GAIgA!KjmsdwGggkE(CVWWy2f)mpeXGPR59eMKbjY$vUzjhr^M zYe9Nlsq~LsL!f@Vt!(h;ZNZYYk08-U_?O+!Nj?BPo8+Hhj#!(bNLO2V*oFXs&@GEI7UxsRusKL z3B`iVV1KJ%JSenIwk5on02P7!h@OiE9NW{3)Ew_)dDSp^pQHFea~ADyF|sBq>H#%wY$nXncofM-5c&QUIebcFt%^DF=mXlXsmH8RGV;PUCe-b zCRXxpPt5|l%}VQ`KQcgt-IRe^r?)WbwX~z0yL(h#st2z?e}mVAs3|2LF%8Gwk$8@X zkNPy*1!a`ekEoB~@sAn+my`f{ z;WQzJ1X19oS!v7Q`21d39h}^*70dQGb*Do~)f957JAu~4ZwYW1dD4Z++XTrIir;$% z$liL#5}L{_-`hB1M%aC_R!lZbtr_6=n^-WWfopeaVw+?gdofW02DaF!Tg1eI>9;+R}@Fr9mnbU!)l zbP60KV5oOlREk9=h1F5etB?-5TZ|{z5-{H^0ORWSPZKaut}6U>19p*?$da*=*ZKv( zCE@FkWca9dI{D;BpTfZ64tjC-9XH*aIgQ@|Esj zrmYkeC!^N;ila~>bv#8T4Ffi1@(m9N6>^MW9I_MXq3pU7EYqMY%$9>9eF+UH)hJ}4 z$Y4LZz|YnAd8_v}=ge*?=69V&_ZrB*z92YAY+9%mg_MeHS78NSekpFl8AQ)+Cp;P+ z`hzr#ym&w~YymD^s!p18Sf-A;uwSvlzWgl%M5(-|+IUVoBUte^vJ z{*JOC+ryUwI_N{(ey5z5)=RS2jSKlZEYhk6I#!NUa>iQ8D8`u-KUG2eA}ttw*5Il9 zdbmGiZV|J6EkRDxrm)ZY6qEUxDh}4gShVhwM%9h>|rowtMMMl4A7$&|$XPA~RiD^+Yk z>pZ4ZWxoQr<_diD&f%PR$88h6Qha|S2=;7l;`N{DwGERZGipepeMsOCQbKJA)b7h~ zPsCz1U3yeV7a0>wm~~?>Qca52Ute;=jVGU3{u_Ao* z*6w<}#tQzmwqK1ofGc{n)DC@46Tym(C`&-%P+XtTj!Gf)1UbXC@KQ~D&!Mt+PX>fJ zJ7bOiU}?4Y6v4p}Gw9^-w=e5|)PUS&>m-2MJZ1k)E#0S?9@N70qlN<}dqL_F@BYj7 zhPaz6{5ya0JU9CEW3db$CPCw?y_sz|{Ohl%k+*PBf!kJVQTg?A1M?3{=#N_?zJ_{t zf<}8jcXPiB()+I<9nU*Z zMJi-oYDi)~40e2wAU*3dX(Z1clEd=pvh4M*F>(-QVpLjs=h?WRYe}i(bnMX9prBu_x3<`ZZ;@_QQy0r7&8Q z?3WX__PX=?)iTi}E4M%XPEO_MTbHGMcD}6s8$&7orw#b5L~%*r=LY;%nIvmUJFT-W zC*-$I4@-$$;j389YXBw?I|B3=x~tXmsqgDvnso)!w;ik#B(@Al;*7Y$rKf2mtc*49 z7~~ z!WXU<|E-044eHHN7pV}mi>7g2(?QDD2LwT$#C*Yl`MYrO0CFOQ)rf52w%DY_d{cQU z*#Bv7oPHv{v z3?50y)p7gPEAwU70~AhADwQ%%J)@p2!M)!JsGOl9J#tf@Y*o={W*~n`hsv-*h9e%= ziq}{88+DRM6@BeV9oRfNABl7cxt|K`iP7Z{m?ZZp7s`WlD4D*YOw%a?e zTHldeRuue!0vi|1ZvX2ff$n>p(7qzC#KY(e|6BUeKj{hoov8k}oT)g0Sh5OZ4FEaYxK!^+D<&_oN z?3x!)zDRt1{pGL&s(P&oB{oWF$7(BbC3VX>hG^@-CQXXPlA>9kD83+j{2B!_bB8){ zs7b9L7X2Gq+z>K-vIe{5dM@~bxqI0vD~Y=9h0MzC^{j@`y^%99G;g1uD(rs>wVkht zvnRO)ps<6?oguh|{FZ#=;J)>WKKx^b=4;l{FV;`$%=S|_kNfjQ{C{Zg{3oICABy|` z-Nv>4OM%BHxfx4KmQM*zo==Fn$WB-|k)Ra0u^3+-E0-Aqo;p z4`TESI!%gbRY3|!rJKx?`NpmnAl-dCoIqgIfg0d1MnTPx5x1@u3ccLvTe1Pf$`sW|sgI@B zyj8MpNH6+@$=;g6>RKzP`w6=K#G35WuKTu|BcM#bRqTO6um@S)W7h>HHqXPW_r_rz z(MgByxS>*Z4IP-tgrzT);Uypg-DIwRUDx)?lJFumZwKo`ldCgPWqSbn!K5$ z4K^jevfA}}r`e|pn`}9mV2KJ#S446|?6Pr8?wq}JUA|n5`(AoVE2Qhi`4F)_Y&yO> zzBjCU=J-B^m3#r~hxBJO1Z)_=Fbe|;4)_wX<_#C+xY!qsqKWgRdsD562u1oX7^05! zF6Z;(?gSvfAVZr)oyShF7_A{?6Ub522B7Vn8-EHS5A% zK)L`pz$gS2EESbvU|8>$#Ti+=ntSTg|4iiRX}WouT8g?2{n4{Eb(5G3arnA5PwP+o z+1fc;R8zd%4B{u=oV-|UmLsJg4Mb-=kAgNhzm8bC|ADl$cyF#2G_X(BivW|PrUoET`jNOySUg~c z6|$LWC&v3dQlAkedRPmtwUh-d6FnScPe)77rx@f|@LsBG{{qUI(ZbyxftsG$_$U^K z{z%Qb)}{oYXlKDLGib>)4%9lnH8&E(#X^EuMCqU6)mAm@2F%G*%AYW0h9bxBdcdRy zE|Jl>PUCTl6LJw9BQ7g(dPY02*kCUk3!OC>6J<eNybw zdoL|K*WlJsq zP6nu!YxJg~vyEvW^569$zkmHYzlXvKvlA^A03TB(mbe^Vp^(Hq_Y<-uH#N{*`pO^^ zC-w#w7)~@1gl+nvBQ$B+nydfwPqHCvbuJ&nE^UN#E_cotqdBKZl|?J0s$@$wd?}sb z?zKFjm5JuYYQQ#ovV!=Pj}|542gjhNRLN{9kDidb-GO9ftX2Uz>uW46J&y;8thRv0Hk&vmE_bp@n*d`wPkVjjQi_PxRqW-2j? zVWNC@EM>`upQfQX$^8~Y_@i9=EN5hS^m44 z9mmsg_X)OBaqw3AWPUZ7X+?9~UXVdo4FB|m+pWe5>@uOsq(3xL#A%Et86xZT%SF=Q z7HJ@}@`;r|u)%;$GE=2eqGvf|{80H?7B#y^(e_tTZr;%bXS$^6tJt|n++v;s2t*+u zp-exn@i)q2EF9)SYz`8%h;27pE#U6t1u2_;RC?t>{&p+h$F-KPLk)S&^laAHjN<;) zj(NM@$aFHMXCXziJLTmDA)+)b4{`0|QMipH49tki^RWY01hLfyvjhv3BH0gdvLLqXmP;p=gLjCrFPhU5gNOEIs^JkNti0-WTN0#Xs``>_s#`1C^a|O5 zdst=&+=HtXc8EjWjXuNHEr40(Vr?T>d*cg4i#D^eW-x7xe@gy#0l@64~@zDcCR zTd8Q1ZF@jo2N|!CNPw@nuIylUS~j_fZ2g$jC`zq^3c67Bdqhgn>&N=-M!iLPMh3Wu zuC?|8c8JyivtnZjd&CyOb;O@WBU6kD8wwASoRE{!; zNenA45y40pG*nI?5e^hdFPRZiVODxKJcOPOIoV9aUNx`3`H?>x!>$%qeyVb&#g(SE z<2dwgIYcwu>u6KsY{TT%t#(jJPH~A24fr z)5>iL-$;*KLS97&A(FKvcDJ+X_Fp=DfF(bl;sWbK_I2b3rUoV<%j>Y@2+R0Gjj^T# z>3L7hB|)pq3T3(~u(I;gv{#1~-o{Af9U=6 z(ZsO~y_p#U=K45+FbCUUf>V%-AN1DEbWiQaJ1muiahS;JogW?ix`OFk>)r+3g z11*mD({y33j={Q@ykI$rZ@CHsO2Z!AGj$ZZZ&9PBc_Ooi1j!>dNuSNB{j9RjHstYXAf{wbN z&dh*c>%QO_Bg#}I73u;@beIoyN`D%Js)-Ah3CUw{t zO4%MBVtd)Ij~oKE8&9M}2FWWUQYY#YDWiMVE>jkSZAh=KLm0B3vhE{Ik<%o~dPpC; z#iDpdMC2+vuS%ObR?wcF9p%5NSv%@ud))~Mb<=sR9n(T4;6%ZI%tJ;A|%CPpf^@CI4O@d$g8q#y%h zV)0K)jBo~>)m#_JZz+`OK8P>)z9^E8g;$)^&gI-qCcJ<k#FY!GqY&#?Q{iGguj4-iDTJzp%_0xs?UMNYRGIE4hGH zv@!gW`U%30R@~baE}ZB|N{TKCDjbaruR7Ge?-?G{?K}MjT_BUG02lL-OovV|9>m;ZFLTP3};j5apc- z5eLr26f;R>ZqbLOxwz5pv(ZGTL}iWiN?68X|4#k;w*ekXJ8dR0&pm47R7T!^49E}asx51OZu*6MlB)j|weo)mqJJMt zvi!>qox268SzCh)oN@;WYBt4XKr~W73PM3pfv&kpoHxyw(|U=jW5NagO_gV^pX4u& z_4-o)4yY8qvNxHv;yLL(KJxl6BY#{t@HlIIa~v=eW*P_C2W{;e=4=;TCKoN#=S|wE zfTE6k9rL!yye`u)h7h;>C;qSS^(8%kUC8q`v!n0H4+6^ppx6&=K9RMLKl@%a-?C)f zZgTFaYA90iVnv6MLhP(GJW3Rw8jvqA@KwmI&yt~NB|irS*9Jya!t6ZJyhPooOLXX{ zWd%qVrPuDV;SXkoyIm$`&rNuTG>RqABu&fVh3JY1Le2Z;pj=$?<-i$v6qSUr8sLNA zU>SY-Cpjy@3jf7qrLJp~)N=jxED5LH4N>CybmS!El@)$q@v z<(9#}XR5>r0O07-gZ9XzgBM{W!0?jW*P@Bdf#y< zOMLTTzx6JaC1-&y!BN4yBd#>Fhe?rgv<{R*-gF@Rjv*f144`Gv8RF~mTCwP4q??5A zQD}}(YYuUvUK&_uC0fp@@g5ZTLy4fRb(kO{k7WIKR!sDt*z*17vy~Xr(gM&EGKW@2A?{vEyBuD+AH1;ZE80@n&hk+*38`^(wBF z)-429Auss~<YctB zkfz%03`ETsZ6ROY3M#r&H6l(4yMc6R9fWM%hCO^S(Jprw(=%B@ATcmb_+^!(&>O~e zv>O}sJ8}9%DKW$=J&MprNX%xri0R?D24<>83|3rz{%0U@X=by0gO_F@_$#sg(7e|q z`)9+*km13-so~60bd5h+1THfT3?S996Wk_iJw7a$JB_B>tRwt{m}Hf0dCgv*QlBt} zf%9=drl@_Fkns3(ISzk-dOOAtPt7Hcw&^NNjRHN^I&u7R*pN7_O58W9@zXmfbvnA} z$oLHcLDeYM7J=%!0Z1kRhluP6Yz%#e(|(u=f+>8wU&35y5;=d5u8`c;dL^p~^3_3Xmd_d~*Rs78_PJ@xc=|E5FQpA3%q? zzw)sAY*XepV{?Ks`q&ThN^rZj+$ABIi?SL~4#6 z8PAa!1r?~)l~Zp3+yek)=Sr%klIrJ4TPrGMvxXu`Jvb_ z8V17!@K#jFj5FZHnf)1qmW)4$21|4*qo|4wGBU4>OrfI;CqyZzDL4dwM(ANov-e%F z{p%u4r1II&S8(~pGBXiLsC2v7Jm(O1FnR=p_aN)GzOv&!7cIbrk%dhJX-JAxb;LLd zao=SRJb1{=$n=xc0z|Yz`0x<w!?Vj4s{1LIof<8>(;zy{nNOEvE|^2iGq(5GyX zcHx=zW;0ST(WILSnzXr?gcb`(p=fh5qbNohv;wSky}feS{uURV8}sF_?mAJf?xT*G5FURnG=}uyJ0NUV=a7Ksy7|L~c^YE_5Ig6l8? z5Ri~g>=Y3rDP{AH^^KM;zq)oH3CKq9=bSGT+(E1Pv&yeZ7$x!rJNV^nr&qb3u|OL0 z!_1?TGaw}|Qh>GS?JOB&rk*ff*(o%`(HTxyZ78<#73XHxnbclU6W{`ONE+EGp&cqD z-|ZPn^l6cKS#2 zSqz@>kyVxl$`kZlXdevLSqxO!70OUfvX2PFwo6!9x^#OX=}lA@Zu|}@7vUu7u+t6V zn+`pjChnGg+nB@Mcy9`IA=z6XRD4_d@iaxMwX7Qr;eUAT$mmuZBCECZ=$28=JYS(i zURDE4ljG1J2LxgQd3Tklkl1b^NIyg@ncBiPSGMeKzV;ER52ksV!AA4&jcwq0UTx`$ zUKCiun3^upv2_HnLb$SVv`4xo+xvi{=DeQ3zeQ&o3hfekT+!4+o{UGWwy| zx+kxj?`MQp)5iy!GUC7+-Wu=|uIIstM@;{#=x}+0z!|}>fVHJ45WK9_?V_R-CBB zAooKs@iXsXSdWV3^59Y*#(KESM|4^35{{bTz!8=6DZ)g5@p+1`iU!Wg27NEJaH36! zB1$5JGRKy#G1%Uo$H-J4-J6B9;k~{J+*7Y?Fe`CQ?duMl`qe|}05E2r=9sljh-rD*H$Da=nK;O=BBXlrfvS&seNW^PiPYiAz`srFHIbex+5;ov)?o+taVzY!c^OzST>_X*7udA$dj(?`E7eI8Is- zjK%Ax+cDJtn!FHPHMd5qQ?&KA^OQQEHF!-wHTlHvvunY=c6`H=o4HTr005~WGcc>Y z`bR1B@y6pY_IZx3pY=5Rf9D+k^$hhtZM*+|npq0kmVcE&tl|yg?dj?B*38NUe+*rz zwM!oh9}(bC0wAfsUYplPI|EHx#%*4eyC6`mD}Gn-N_dzyt5v}dgtR$c{Q9&SY#VR6 z#EtoS)}LS!ZdfEFlybmBj8nRi|MXi^TLJrzx9&JKGdPZJOhTqfJbJ~4r>oA1mmmu!ZX!10 zvFRLn`;K=!ncW?H{k1Gd?{{k3{>Ez7`nn()C}tHberwLRlf!@VWSuRpjgyCg$U6Ob8uZT$DrSujBeJ@*>5MqU?N0?LGk+W;-Ao>U0^~4A?sgX zus>|POme#(oPB)m&@a|WKp3V4AN!zTn=wO@rp<19>IW?5c zb^{?84ef~psCNRdHq59B#zp<%*2$d-ci>HIQJ1Pn^4wEGKZl$=){yet1jCdwH*oY% zqQaG%#jh4!JbPp1)Sv*!O7x0=h!A9@t6Z?}4PgI^v2TpBv`x0m%1Ya|RcYI{%}U$0 zZQHhO+qTV0WAdAxJJbE$zO#C*v(|af-}gN6#Eu<1cCfsa$nzW9Ojp(9K#s2ejxsN9LG)Jm~>CWI;Np?8GvG| zhX_DEQif+eenyL=teoZ?H@0Z(Hn6I#H`FV=UxUQhO0K?v94=9Nh3;~PT4rm-d4S0B zbmA%rBvl;&ZKxTU&|4)*x>uTF>F{CxP!Tj_7mCX{@QSK~+{(HcVgK zeD1Q>KQurhUMh{z%cR^s`ZVq#pY&gFg$cqkzw6hDiyS_}@*Z0_v7Zkj1#N1`%D{)Cl2gCUDR{76MMR(G

;7zPRjT#JSf^1Y#pDpAOVXmP;S%~#hTr62BOO*%bV11P7? zy{&5>x3nfadr#sC>6@elRJ>?fY=e4Kq}wrIF84yM8y6Q2rMs)bs#FoPe6Ev_Bi!)V zW2B@)V%}&Ku!{h9mWKaV;c!b3`>;WS(E=Z%fb;l{HilRlXN@fDxewf&3KyrAQzMCdH>yVPmfEciKA>bVt?RmRsmR>Wa{&+Xn_?mC=l#0$Ts_zfWU~D(_ z*WQjl2id6IT%a+1uux)|>!#%~Q>aW#$<(W5NnM30VMVrW(DhLZZP_VO9@he_@1f}&v|n6_nba3K`>A0_)B570Qf<& z$buzPG`}RJ7&0b1@(yj~l_eEcn?{n|(fN2P$=&F%q*Dk}MWOedUA4^rOB!sf+H4%v1d_>yXT-cwJY{Tpz^`{mIV>bVW z(iQE)+k@&46)1-a56RLyp=k5ni*gO>Z9^hoY8$suYgB}viZv8}<34y$&az%9%LSzs zUwZ?sKd_dYC7IMW%{+IC+(?J=v=^SJ%uQ+Ry*J}Kq@-I9QA5hcn@gxumqD>qSPa)D z&qyp0o2GMEZb$BM4ZqBKZ$>E`VonNr|`^1F{_6I9=;GdToNQkb}03(cQ@!jh`W8&&O32Av5SL9SE} z*_Unw6le$go!$40xjUl5L1viU>k$k<8o|62`8HGY1n*yxoL!REA( zgZbw9%|(`*VmXebj1c`P-2e;Q=>xUNmm%5`8_Z4=O<_1bn)0xZb9ME01KBaitic|q z5}o!x;V;*w9Z7(R3V>Ia@XSb&OpBzQS{q$#q@DZLFAM5ygz$zx6R=+VF-&MBgG=+a z>%u1tDBYIYrU#Gg#-kPwsKpHhE3}q~u#pz%JE{6cMj~jdoY3i7{Cf4Pm3{q!z(SJB za)U1DFhyX47xINb-S^pFH3ByIxy{A_dhxKtgZ)#UMNRPxR*M{BL=Gxw#BS`Q_H!ku(K#D zMHVzPU{kurmn&+fU^r6rf;ZFv^%6UY0jn$QQ@(yX%I<*Ps6VA>-&In-88_>64As01 z-q-jHX6);QX5Rb14=t*9%^!O5a!sopK@n@q4Xv1*{;jjRMtAM;7tWdbPb+#!>+fx! z|60+@{TIwhwme_c=M&^37nfHjw8!7g+0{jiXO2wMb=zgs3SytEF*j=7_<+sgbUEA` z6cp(5#qHTF@g90M!p|Yy)7yI6>R{P^>fEf~CM^bFt`T;LE7AP@Mu3CKg)py)d8@8& z8bQxdI+>`2Suom?j?)pZyb33nk~tzk9w9ljw`h{L$0-;()0K1*Mua!l&MI{{1uN zQ8yBUR21Yf_J&aaAR9;@g~2eG$FU1&II8Bg8s)*pnaALJoXgc*-3o*^Z7g*QRi@XV-q*jhd5k(3<%w9~g)D!3Z zn*!E5&4f_gAgpM{EpZkO&}?V0lkGJ_cdcNvxhVjGWa8)kEF>(x_mtot*4+++_JSLs$CM`}fv=e>`x%zp;ejVMAq zWmpWa0!k5&M{;^-ZelATcz5CXu2URg7!uI*Rb4PPVrK8>ac}eBxVV*%H*&ZmFeR3b z{nGx%Ugt(9e`C9M=<8F1ar(ZSGM_)Pd?FkeM+G9mP4K<~XL@bW$n8(YHXhk+*4IcQ z0_JG1y~4n7cMD4MwqfR*ux+`rCi(IEA1oQ2V%-h3zeuz%!+lvDOtIEY3~CWHvMhFa_D%YtYKgFBcYvgS7rJYrd<;2i*EPQ!a zfY|c|Kg_KYYDNAg^cw#n^v1aFcNlJMDr~*Df*XUuqbN18Z7yx77jflEt$B2hsMG7m zY^_#$sVIMsA%K}zd=q+ytkHoo%9w1Q0M%a6sfSvaDo)eZ-7brIPvOUU@Dk|5{q&T_ zpf8c-e=G{e&wa#?>PK)OIP*hlXZ!xe*aJ-MFoSaysR>=-hCtBU7*}CnoT-)!LWwyA0 zbt$=(S9Vsk>u6&ojqO%z4=R!;iJ#P6DU<8%{jIj@??D#g((!l)V3k*X_ z`o_wB1^$+bz;Sk>QrR7*2rN45Jam~$x37edQJ#-4t2`XY-*%)o3}K28IgH{rmI_Ev z*zFgBh(yL54;{>^CFjukF*~NJcujs$61q1oj+_unEvM>v)x|$dKMS-kABb!yHTY_Q zbD7L9bwouP|A4(Img|7m(CWSVtk^-7Sq~BDRMvn>veqcxUecgaPNpfV*QDW4vSDMn zH0riY8L)@_mM^MXA4JxX@bQ`6La-KFCA?3?WRk)+n7*l>y%PIDS9)ey zRyqN#Q4#5K1&I&4%Sab-lbbeOYMTTDN}rQhT06Qr?ciG8B)nLj{EKLfx3%TLw5?VH z$Xc;vntlIKZ%HC7DolRZE3hqNeEGNX?%uPj+=-%_TM)j6x=&|pmcu4LEot6LFqgh# zjPibI!u9Z^Jjg(plvWj-fr7CXc6?*q%H zOgA}8r+*y1jPlTVs^?}|LVfe$-}{!)8E;~i&>tLem}?QD6*EPsX@7P{?a=8Ij`tv{ z7mlmAjs=7kuM$W&?!J_>`5H@A4BOY~CpYZ^`<)f-t7@461#uOr_mWBV$#d29dikqh z*1~ri^3*&pCPYARJs>eFkvPwc8)r^T*;7X4AX<6#q!|%o57U(vAVMT341#F>S}~A$ zXse%kuJX|4hVhz)jTMspS#>OdCB4p|z2pehQK(y|Yh4EkOes)JQ$g_(CnJY++Z5{B zQD1^L{aW#}Nq3Lvvj+=ni=@6e=`xeR)zy(v!o^~I)< zyHPb#;7FvGIUom!xG;GC=pVG6(d13p&SugH^<~{iZ5athU6%?gr zl;u0}?!=ZdAO@ZekupsW8nwR2*U*j$u=^%ffm`^HoSZjUvkQ#S=cVK1kl@r1k(3Y-^49B%)CB=SBAESEo8MmNxQ#_V~-UEE;LvlAU;XnuYunizk7c&@XqF+ zbi3X>JHr8A0^C9y)h{9eU%WlmD4#MfNVbCaTDxELJJm>^)z3(`B}dorpZhI2en%oJBPc(ric4`kbvE#;*A)Ki!t63kf}})!L5E5enkY+*wpF2%ug2GX&-*|C+B2qMo11PaM%^{9cH-Y z_**KEI~dx0dvyB=oPl*z;ME+$^C>1F!8WDxVDJ-OruVpV$h1R+$%u!1lgjZ~w)^}R z{*-%U*#jGsJP)!vwmh*ws(@||QZ!wRh6ou`2hS3}Go>NY0sGW#4!QtStb3(q?{8yZ z!6mVt%HJ6_2^Ik0*ME>_+pNkpoV%Tpuewm0dd|+4HkY-&@+_yF zr9*V37jU~X?lYgBkh4kTnFgm=RrQDZz3KYQ!8fHKjdc z_sHuaulrTW7)XjtW&+t0%z@mH<4D=GL+xwnf1g&W_MNbU-%UvMl+%|dEu{Ctgk zakg;Sy#jd5(clBnFdTRTT02rK-LrF&t4D=!^#!#qJu6a6a=PmEGClU;ePhqa$LzcW zb3KykZMPBivq>qeqfY56KtT@Jj11{fo}8#I&L<}d%wr{ZdR3Ku^pmz@bxn`#k3*6G ze6y0HVmw2WEDcZNt>N~r&|9oq7;o6Tf=@+^ z8GDWrUJ2nCox}|7pDvZtXv@A0V2p{$KD0G zBCnB!*s)!K*b06c52!`H9x=CIk{DOs=fY|Ga6RXe&+0KOeG@w>QKkMx_FR*mU;O*N zgx((_%Squ?ZuJCG{Yqc@*DB{PE|^%1I^1Cf`2#h57cLHt&a{|`>D~Ca7uQFh!rGR} zi#W3cCg5y4=x#E&7=uYmXkePwgXxjbqa6x|&xSU!L%Fy04W~Ch<5RKg^5GFwH3a&X zz(M`qg$c9ID@!!Hekw0?9q=8AX9@vT#Z^jS{9+715o?9`eHHmJ+2!S1X!IwR%{~WS zr5j7sj_VsL>e?UXC|8f{#hOwG_t$&w@)vIp*} zbq3od$EDxa}^85$+P zjT;UbdAw+B_8yIu`qi#A=ReVU)}IkY7UcP+pAuZ~!A^^?FLwzqhILp;GIhB zA2}@WR&nlTl1ft*e`#ehHAHya45cqf{ra{uTCAWTj-gJd%wR6U#Bf^?=GGqc>=?cA z8(GA0O<}v{{nI(=%Hkgx$?^OS+O17eoxp)`sx|mH^2n{@fX)ZMA=i5~g7GMvG+Q6! zA4^ycHY#FW;J1Q_wBqM|hi)5aOLO%zV^OXnz3lMJt0P#`?vFN>0OIH1A1`)btQQ*M2;p`LwDO&Yb0!*g&8#$3 zj+-AurF`lZrEc{?+RK`id6AFlVvU4dh6RGah{k!ylDAJG_f};)wI(JFr}-zrRT2&=H}GDbRBNZ@JBV_@#eS$+mI&1!*BC6^ zliSAC2F^U5tV3U!+{XnwaC?%%ajdh|>O@Wc*b0%5Eq>Dq@Y3e+xL@l&! zYf1@j4nTm|JcPUY@0B^XF`)owGTsMg^6d@oPUhllmf(H3vy7 z(i6TR*b!;){${aqTB}&1=xM{eQ?3Moj{Uf32u_}C3|eJe2r|iKhhU^9EX5<9$9?^1 zg`k~1=N3IdY}%NlaXedjS*QdOt4@Q$@iSZKl8asS;qOY#kTVml7_$?-Q03Lrjzr3p zRL16DlX!Di!8{C7|7tM~!E@7}%a$;+>dWfUfRgSWSkUXwlDiE43G>QUeRlnftx@Z8 zF*D)^B6_ykmLck7eUTghy$zOqgQFAbYU;PbY6%<{zNIP1z|E~`oi<~J5Iwr1 zn7fY(5$kJmy)BvJsKN?DjMx(zrIKq7EOiEj8XB98mC)u(S);tuEn8YSO7lw>B_$)r zHs#iHN8IsZpqZ~maWE{ZranuVV#ko94thkVNOBP8Qz@!Te+=ctjEPd~;|-#i2D$;f zvNM~ekcx+GysJo9Q^=3xmu%N-Rk2h_r;hA<}LP(^Y+n>tw33B$^)L#&z06}F*wvyYL-*S$QP{#WyNHog`Z%& zWi@H$=TI`?b+3R1%)rg2$TdQi_Ual*233r%oX}O!5z`M7nIN%h3*C%m$FjBNjq=+{ zk=5w2xNI#-h>Ry@y9yfdFa6$RWHhQ90IU?irni|vlW<5fl?s5wLX+ZFtisX;DMFQ^ zd-cVref2qOZcs9jo};q#Cz@AFD-gja?{J0famVp_y81~g#omQ!>qS}Rj@e_$KXK_( zhfYU;7KYsr?IedMsZ$r zZF2^5@<4dj6&}Ilu~ZKAUCaxT>Y^U z6l)jM=-41Z5`RE)GPYHd*?(t1t1;gFgY_<~CzI1jM6gp^F5Sy1eNRqpYLWGx_D)x; zkr4*|!XCrq(7WjahY_$#!ej{M#L0Bkt0h);u_52`_(<5K6nY`eW|_$excM5xlZ0IUQ%5B`=Sz!|o;*1-%H$SX8`cHp%~J=@DY zy~{twFdZVc26#IINxv)sZejGVP`ZgbZrfQ0gKK^o3>JT3G(x;W4cj?uibP-YFOb82kn)wP{n+&*gm&^@-wopRT*M?lnt3Nyv^vs$!<72n81NNE>{$|e$ z@W6n*ME33|&Ajw0;HOS*el`4cK?(mS=D%hd62cI!+;76%>3c@u-?u%#2M$fGj1`42-m>!!4lo*F-^zjQr(yG-mK^AJ8h5P-dSxcBYzNCn1vM(JU%9@Bu)tylRX}?;~@yk9DPM&LZS0CWF z%Yo|5Z1^YRnvM9d*lz_OU34HNec`i)d z12f(}Re*=bawmO;DNq7mOsf5?Y7HpBju?0LV=D+1jA3}2Z8Uu&PujA}g8akChc566 z4nHZs-K*QX87;xBWA%1)wq{(_ySU*bIPFS76%wIoD#B&iiTK16CZL1cAvcmc&cce% z24@T;WH>{W%loV=3n(K;oCgR?NnSHVV3M?OfCzY_sJo#T5=D*b%4o>Cq`YBr(EkiY zp*v1rqsKiw+0$gm6{^THZ^2QB-T|>f z5Jx_blB=c*VM(}6dbG~%R(jypL*mYFK?Gei37fuv+dgoQmiEBQ=SHw%7B+8@Fi6Tn zY9o{J)VjU?TbJnC>#(`)8(JNHb07a+1ob~1_wknDnhEn+%`?oC9x3IUgdb6N4J2VHMn?$^%APp{M7-tXXe5f!|h)RiHtxN?YMzi`Af)amC;(bKX{ICIs` zd>8@O3#p+8#nExVe0NwqnG8opj#^C7!^|2{yqvhZo0IhCJ7>@?v+HYkO27!sKk zPx%UY3-7gb2NiMLWr<}ILE*tR-6MQSVBY~J6|T^}?1Ql$b(4BB5a>9%%(t^1D*>fy zO@}rqcIYg5<4Z0=>D*%r@<{EbX4*97f2lkC5d`-5Sc|y`KO3G)@?jNCVlitoY6PDE zTXKA%18r2Y(W~uw-D%L$^9fWv^T!+?sbKmxI+nfIN+mY-ENWmE*;j+3LWI*u4R^gT z^6^hrUWlqDSV25&d{ON&=krZ%XsX21cD})*+z5VC!zZHU!LR&Prz1w18KO^KC?iit z1+|2{@=KKf)O-lVX)s!J@lLnWCppG~OPv4oNSPp0yRae;e;=|r(*Ua3Y!Oq zZy-4MmdsF;sX$*&4iwCVf_k)V!)3!Xw`LW$ z=|>+F91iTxppnxQGf54*Dv5$2RD(fyG?Z+qJJ|t@VGLk8OH}QK5l_>;SP|YCQJj)9 zX53lwo$?f#p%bV+_t=Fr1)-1$7nN4_)0kS4GCAhdcKB*lUCMS>?LX_)8odi&9E;yc+@+%zf`8e za6L1~Q4i3rr6%6`^tV|e-Y65HbO`br-?#}HF$orA z&R~I&foVLvwAR_#3|y;r4g}EwP(TvSaQpg(j;zvGF}vqe*I}*_(N=a!*S$<8%I$m@ z(k1rAMNId!pbRIYAT+r^Y_S{-JgfY1hbxkSJEL!P7Twf&)u>-KD70V2M48M;lHpet zG8ZDVUuWpzNcQqg8*KF+v~Pd!X$FA;kh;YPThrE^9?8~`nnC|#8nadDDMAZTsuB^)`D0sO$^!zWkcBrp)5m=-Dt%^}S*E~2Czj{i9}>tOqQOtLWqIW6 zSumb&%#2F82x(M&l;8=l#vI(F;Y@>^bMO}G{bKwGob_)^{S8A#M=d}5*r3NIy6XH* zqAz6T^s6wtcVpcagRO6|b?8ePN`)NQ6m`eT54)qBHrcP*8s{nU*}G_4gPt9>OGqxw z5l|tp>2ThKi&8POCdrk=oXCTU2IB2#cupdsP1`O+VTTH1u@%I(lBiH;M;UV}JPxq@nXVvpdS zG2MwEY94a|wTRUGLC5tLrGf_KkoB=iDzxJk@^gXAZ?PGrg9ay%^ohaDeOjOh~Mg$)wt{oY?u01xX%mv9hN+YK___)WokYn~99R1=r~! zkCVAYf7$ed;~qvGSU{obPks)ovl;&!u1m`jXfRGWdnBsN%+o5K4Pj_FrZUYYY`8}{ z22OKEwOzmZ$+x&OwA_+54q)u(de8jZwh}6Pt0P+5L&huIPg9$q0Jnx`n*k=SJQuA$ zaoA>e*h3mCVw_3)Js{h@HRRx|)GuC3Qxf^Puq35vM|!GJ=e}~?jD@r2jGA*3QE3sZ zYP%0XndZTeGIe}Kn39(NIuYnFH#!;1Mh;dHahYNFeX?kqDRJxX<4-LyLjt|u-2bm{ z#l(Nx75u+N;eX46|N2wH(DfhrFfgh!tdAFN_-kJTA>S{UMptiFtwqWoI>N(Z(Y@V58MN!)wfWGYDJ@H^dODZ$xQGkuu08r zPTSL#&I2d;9nlZ0Q`1XAuV8Y(ExG;<|198>fwL5^Zzq#bkoWnSl%U~PHo|#FLm2q} ztka*F&)s^6wFhsc7T#xUy2ew6MW%D)2|~EcEd0kdd^YSlv`2T|wC$ef`f zlC`3xkX!^wV5ylVCoS9-6z9vUxD%a)YOxHt;#AYON`{Yo_D*N~9G^iiJ=dp9_p4T( zEqCv)`}J!8eO5R$+5*Jpd)rFc1(tnc5t<=}s6x!Z3CzverozKuxRWh8o$}i}Go(F< zbPjp@cN4@Dw(tl#QQa0~gWr4@bMn~nEuMhbi-kRc65I9TLasX^!99r}^}H%1?HQ6Z z7QeMg>g}hGl7Xv=r)J6@tvKClNQ=b;=rcD}Go>mgAU8O}=OiVD7~FbgGvfwVB*O1o zBL^-tolMzCX;WXn;zECmQ2Ip8cona&Th7&W%|g}7o3Uu z4$uBk;51x$aI>>4G2}*?V#&vByHDiRa4=Eob@V_8z-0mQYjPMf(a3350~>lGoOn(L z^y(vp4(_>}{X=xUIRtPG4WU`o8PG-395SO^HpDEJrLv)o5?RuKB4juPzD4P0kre8y;t`_J=t^2M z6?f&rtuK3B!)XHiTiS-b!~D&@d6_mJ`*fjYIk5PFnL~+OiJvts>Ht+%R(vUkN+@2I zuCIC>&lIo)vU^&r0bs7tCUjYva2$bwL4b>k@2aVt4YI?&I4GxT*=;1lcBEU^*Crc{0oqSnQ8+>pL7rE(OO&I%m|uDz!|6^E0uF#u!bN906>QQ*$P z*Y)Ypy23AwIw{?PQ@qUNspu83J6_BLTs@2QPA&Zwdy6cr^26_#-NaUKT>g*N>8!c8etC92*CwK~Ss8P{AQ z=r-YvletHjI42se)ytE8+dOYiPVB2>5`+^Nn^-*E_(&BMb4s8YK0tTV%bBrKn?RnP zYz|=^H-~4iW?_*i8)HU~0QYuW)>6vM8n?+lE~x zHFq&W6XYJCQxD!Ul2a^iX{rZtMI_D~8ioc~T!TF=rUZHBxkn<;)Cdg_$=G|sYP`5$ zE3*ZOItIBkKY9X24?mjiBJLfrsJRrLp?V%oYMRfgh5_9Nt|7(@Eq z-CDNwpAgWRnjXHj)@?9pxq$`@(l^fbrn+DBtpX<450g7G$5p8wXgg@>TU^1P z3ESP%;FOe^48RS>(?ZSqxWR_eGvQ*2j7W21@ig?F+R4v@@4J;6V~SxgLfTx&5$rR6 z+~qG^=0pR4(z^pq)?1C9!AH~Us3(@dEyUZ;HTSsQi{N^v`cY~{;1ch%wZ<^^3Qe(N z7Nxsp!}?^ElGgn4?mG)gCA<+iDzxpe?>=G59N=cIJJdCiW5>-TXWPR>z~u0mi=M^5 z+{T)B^Q1!V#S>Wo)To31llv?kb%kRM*#W)>`qvh_I^@D!@ORyTv%w7Xr^TYBvn4Pj z9uU3X)~%?v+X_B{)H#Q#k6UIO+0-}aoFdY|uJ=M5gVs#1SrfA7UbtLDEd=n0qlWTF z>)J(wW))S1q8gZ`j|%XXvhujAC9<~19tZ~y9mS0q=-#?8qyevK%()afJk%^xbp;Yh z|F*pLQeZ_AIv#-H7(e;)+#W+YJ%J%lv#)xO`iV#2*Ig@B;U+OYq$%Z|Iv#p3^s@4i z<0zAbS*M&ZZJm;6e6nVh5S@V2_kuMt3P_{D@jGwo#U_Nb0`D4D)QSWT?J!FCG^zrW zR$`XxVl00FS3?jZLOU_gTd5q>DraWhR$?DS!_Y+FsaLwvHmRD&&$^}a<;0Y4lCjbirM!Y?;W2V&KtEM znSfbPJE5qLh;|aREL&G}6xdcPfiTVqAG5X+{A7o_=Yavy{jka~z9g#IRp3nfMDEOjAC zlE(uQpAw-K^w^IbD7ikEc~ND|@1d?)Sv#GS5ug`Gh%-i>q0tpGF7o<4sE$6O`e-OmtKq)ay-{4P77y_${5+$C_4kN^c zjpLy-UWV8pV*W2J%ISi@N@Vo5bs&mLeT5nUUaQvaD>0;L*ei2bPhPiq@&v$lMnWvcOlbGN$N3$QQY74uMMtWPRF4E2K4a!@Xd@ zNb<9A288|gFQ9eCIhE4IK zx2i?unAju;EWyY}0JehB;g5Ej${F#}XWXZ=p0?IOEus%x^{V+fjZ^i7KO?h~>3o4ax+H;g!pQE8O@zZ8qOWk*Z7Z25c+P@u3cvQp>yck1rml*Fu>ss3&Zy zHaR5D0*qt2T6dYbOdUpXKIEj>guX9v;wW@oBTGK6{o|hLTNe-vE#;0x&sFo(_I6aG zg^@Ar^n^uGPev#wWgjl$uhM^|eLZb5mgmQlT;SUOhM4xy`O#VLL~6-mELU#boW4GZ z0b|C>84QE{`z@Wfmx{9id0{3skYJL(uK85_qe8I}>l3oKJ&E-viE(n!aFV|j!pQ;x znT4OU>4_Rln_v!u8dug?TnRXP{%$Dom!)R_YqAiBCy&T}KopjV>W?Nefdt@jtNCGD$s9p^P+Q|n_dG_zZOa1nWjD1pl%n`ILIWEy^m0aAyxX~B@c^9ugM@=S z*TN|G*&jtaz>GQ_{X_QXQrE>U!Q9<=ZEYRnLXM#Oz=NUUZ&^%hZ+B=l@oJ|m9VhdO za&O^j(OgB9U9v>Gcc6ZDpnoz3H?GC}`5i2chA}WSi~IHWw9^<3q_?kU_Fe+2978@> z@dWyUQc z{M|zDxtCc;Mw$FuR}DnQ$PWfYz@&|iNAIw;l> z#NRxeCWbf1681}= zA}ood~oW z97mk+sFnz|`%o+*tUe(oxjIO=d=VgmsPY?#IzJal&iXLn<~Vgv+GWMv1fb1nqk^F} z=vj`pq$3$q7~GuDqJO#szyo`pplXTJ7Es6aq{fASKUP|^)?bG=_0M2)i|_->+$fGb zL@4|3IgHEEYPaVF%Abhm3=6HJyY&NnzF$DI9uTk zf^EGKQ|Xd(oVN0S0QB|y1`a`TsJ7gf$_9Fvd$6bb-$JwGvy$(D_3 zO|V};mw=JRwQRnZeW4K@|}n=gAOD5$vWu0r40VCziBX z7{Ha2dIb~0HsI@riA*!`<&U^Syu{Vb5T_O%Fin|&_PHv+LmI~HcA}=lKh^%W!yv08 z1z`);)|nNhU4~ke9|Lk-;~FBX_7`snPodOR|IA=(zJrVW8?bp%wo=- zuBev5XLz9f&s#e_O^f18X~#zwW(|dZD;S(=S9P<$5Y6AGrryKb;+21VA#5qcKnqFZ+6rmJEPS#){e6sis?!;?ZSspZe3fsGhxx`z$Z>>V(FKut*h96JQ1Kq2r%>h!0U8gA3 z%)vUK^D0l*BeI%iBe#j3(`1w#k1m7r#kQOoI=21oN4db|v9ArcrDUeG-5MoEAx7I~?nHdnWGlT> zWQB+A?%Jr$)VL}A`icz0r2j-A|7$MiKdY2L(oKf`C#*&Mgf-&-X_X3E>Nz<4G1RmD ze|J(@2^-eP@;_olFc3vu4Gjwf$WR{B5XF&&D1E7P5fo%|`gGeoRgg#yP!m`wH#%t+ zMIEeX=!qFtf;#K!K2-U9SzI;we0|@c^ipOchesb_9lVIN@HKJ=bAFp^Z8ikivD>*6=G+|*~O%ru%NttB2<#iZ%ot1W-cF>xAwpNW& z_0in9y5}}oIrU>m0KL@_7*$q1a)-w@b%JFlwzo6C$b%cYJCIgZd=NOqt5f%bx8)u7 zBK-7?P42I;vREaCeMF1tczV%gCt4>?nB*=fpaCcuH`waA5oob7YAp#ZPSUog7N>2L z=FwSZA}<$4smjO>2pSF^6Z_j=KhxmecFFZ(MDB#QQh1&%eDaX;<=oc%CDYe$xyQRm zI%hZR;qMfi^z2RKP&hhqKBBIF6W}R1L~bjLu|i``9pUzUK{^351+HH9yc`k?4`I!< zw-ntwc~30=7^Nm0Zor^axs?w;aNxg-1zXgX6BJS4jn>aYMUeV+6t@dz7!b)F9+Myh zd0z&u8`qI^c#>S%OjhwEFC84#_Q0M$jC=F|`61OQl!Ntjm+C+H`oHBdOp4Ey0eHWD zW&AM6iT;oCO~FXd@c$8h6mi2iDy`Ttci8l}3q%yc03?C^K*c)VeHjoMf1ZE?!TQB~ z{R)#~(Gk(9g$XP(lVgp`EXZXHI?QM`b@R!#IqZ-xiJ-8g;)nf?|2d@(I(0i;E=oUG zc*{U%wY_wGg`y#*IAm{kIhY(zXYFKp?A*Um&uD}CQi<{k=&>*<@wE1|U+~+^be~W6 z4J=)_b3;J1h;nrhgW&TA_U26!XDxMQ&4DaceZUL12LpD6Zkx82JFljlsxC4RYuCgt zA(!a=E;6uPEDb|J2qgvBENxcj7l(ht5q6wKTfu3rl>F)%)F<#aupwsU`jLl3(FJyP z(TY-2G1%SYUnxvg$ zy#5Igz%%BLjuAN~n#BFh%bg#<1Cbwh-5lTrA_%FW?%>t{Kg5tThH;AMn--~^UJOGT z4S{|Z3*!dRE*9i%Z9`l9Q>p@HcFu2DnpZ*1#6ba;S9As%r?I{6#^E2Uqmpfw#)~eU zPdG_uvE4xjk_^vU8(Gw;Y-fdY9Ro{It=(4t3`gyxmS?LHe+^Z_$%Trwx+4xu7+QZH zNtLa$9KS~I4EKoWgh#ER6)*=t<-GJ;k_b@Pv-p%lut4fJnp%-@U`8}X@f9&{h_;-t zAbN8$RTy6DEwGQ5hU64KhwJjnIxNXRGJX^a!S)CS-}oSr8WS<3tsO#W=~Dr>lxwgw z;BC=Nw>XQymmAG+G7WIfwt@g*qdxo_=_#5nT6u%By@GSsi|_x8+?KBL2kpomZyVI+ zc|iLW2E09r0a!`vM%lPt!dY(iIkJr+aJaYIV z)){~%i=CcvcHL1{wa}-ug#O$Q)1MJ;YFnhaf2S7h+F&Mos_KK&pNW&Uzp`w0c<<{& zedXqUAV7}7tF0#`KUQvH*{Jz_r_bZF785_8W@T-MAT0iknn~IPPHajT7vHbvj<*_qLjrPjwl|#Nbh3$M%+$O&dM~ahd^YRah&I?yS?ofb2HH+rke6f*!P1XNGuL%2eP^X6gQVO)ZXy%c)@avQ$8@l_m53k zn0}i?$8G>*i_OEGpPu33gIa`w;h*Em=rvtQ8YV z1YaHQ5~1giyDf{pLlFJV5=6@X&QAygHMV2na%5myTsR7g04M0r{}`y{YW{_ekraEYmiFdA8B2}a%Qr&ph2}0bZ5ffC*(#^o~%U9TtqFC(4X1i zmGCo^^D|ZJkG*Np5u6&D#Fez&*yM}RE7XJ6&~XNfg>knB6BgMYgOMr97Q;A;j5-1L0%`4j7{PQxA*+5wLu6%DYQ zhZ;|#;_)JFz^Z0gjbi?5BcHfn{r7GxYOp72xuvZDkCCn4;10!%t6NP_QC%8A~ml zr=_2P!#sAoNJSe8ku?uI_%q@TA4{br=sw=r;8xowfmI)2Yq6Ho1XB)#x3cG+oEN5O z49`6v5@9ti-Yz|2yg6yw5|<)Ixd9PfeSv$&yZZcYC9?XZ6ZRXKO+nTgA zH!icjvb5IG;E)>vGvfSxFtnlWZr?3pNgPyUfP2+acY2w!Fpm;tiO1VX&!h|Fa;NN1 zvL&tFW>wm7QB9lmwY;k>p}{s9VMAsGi^Pq0Q<&>(QU{_p<5-l9X7I1({Lr9vMs`6? znl(a3U?sQt*(I(9*4>t`%xGl!xN7QZ3Xb*%N4UJR)?Jpy5|@%M)y>55JK+2G^DD(B zf;{D#Q>{a8AJaV-p2r=7aH0yol2$x7vW#j^I&8U_9}|ubt>I0~p@O7>53xgbs9tE0-5JQ0il{l=6j9t}i07bf3W&<`YFne0i1Aiw=uc zzO1Ll$Ql%^!FLvKU-g*v^xqgN6>qs3Qz4gr$=7tO%EQD+cHsvhX}jVb*ong7`%m(w zhj}HI^a|=4QC?b6Uj57DC&;XGl~U?CChpiddhtHR$TD>Wv{fZ~7Kheu3Hm4|bO?5^ zBWbSvGWBL*krtioYWrVllxpKlVKenKCsrq$^KLV_(KD1&I){At)tZ1bIwW;j{6Y{@ z-y3NNcvymHp`v^6lD4nWUGPYmv^}@aN&>zBM+vkt$7i#K=?F*tEMn40xgBW-3%7(2 zginCCAIAF-4t{NXH8}lVN*f?o@HX<0Lnp!Q)*{ms=ctOxdmu(<#6}@5!+&vQ1?Mc% z{Z=#60!L##eV)0MRmR>6r{`e6XW$08=lP18V(YsDxHHk&kBZ$E!8^yqO0nU4Hioa4 zU`>_jJU_JAcbZOJ_Zz~XS}~RH?qK3I-0HLV^i~hgN5TZ4vFxFTvL;WKg5{gD{3gkPS!Gg$Y}GgbjPmJfB-$)AW1kp6$H#$?SZk&D9Kk z$i~fWuSPfj#&O67Za0hQKDAX0afGPL8(uqch9;i(>cyzM4tOGYeY?|$RGF11-DC+! zfr$TW?=Otjv(0CZ??w>(a}ULLz_sj|iM-CwZ9wY#THs3SJC|suEtY)eEf4|}<^Hc2 zOM@=k@Ap!2Q)h@70$5H#4D#LNk}Ay|b%qfEw>Y`iucTd2R4_pU26{{ySXb`hyhDE< zSak52{{Dz!bkuc+T36Wdtl|oW-5Z9j^fM&zNW5j$DI|5vf)qey!k85ETe(hcPW>%#lXL3i zra;e;B^!!5UBj;Ruqss0GC|QjL~47BtDDLO)9ujFjsFA=S{4pxMv@ zz>LCKD&y*dDr`}WM`q3ssp>r9 zE{3p1xuHev^P17ACY==z1Lmz>m=+xH&s|_vKv@F2`ibE}-NS);ET2A3->BWQ3s2O+ z5^j}1x;4#(TK_5#6wmyQUab1v7tk+Sqv77h)yfEeabP=qJAcbzi5qgv5xL&wFv|tM zad0aa->qVQ1THa7jD9_BxB7z^35DZ;aETt^h3d!}q{OIBuid%TQMtCH&+d&cD5NY) z^&Q=26DW9tY>3kG($Roqz}@{c16so3azEntn7+nf<3?zFk`Nl%`Yo ze09hez53d&)kAf3c6hfc&+~O6|Kr;I1rrwmEviq4{NNr>DRuqYJm{M9bpy(kKVKK! z2ZC%61^F!t-5%`?g_s^PI|RZ-wzosjublsh0|0>k7yCi+g%vU~-3LLon^SCm_Yi^= zAxU7j*SUt)3A=W(H+a2?AkF`o&}Zj*?%y)h#)U}*`&IcMc7%?@#)Ic<( zY~;RXxTYH$W_G9MlW&ZXh5-OG(7*_Q7yu8p5jP2SAyJZ#{SXgeS}+m$Ei0Yh+py2U z{?f24){M*Guzxz!W!bk(T9*=XVk>G*VVp;S>ldF3+uu($G+En07x6)B_o{S#!Zby_ ze=Bs2F@NGTvbVQMPpbR9Nl(E3Wyg{Hp$x+&_-X>q5A0#zV-0k&G0q6H1nMu;!4JiN zoQ)R}ylGP`yB{WKRNGGx%agHa%V`VzO{-;y`qv*zByJBc;09Yb@lOd=&Z76xnB1(O zmjtSMFhhM5R>Ca^Lg;1!!$ztTR_E}gWGo(&F;)Zl9$%*JWE&_ap+U4BW{XsR1-9v> zZ%iK@5(iXb!u~F@_478;x=`ZV{hFuYClzPQ-n>9Fo^bDTkN7J+x$xW!ZOm)%V`vQK zwj@Ig^M;EVqjsTDAnXmv=Q>bl=IatcSSAuCWH{~-Dd+sva}erpBwo(>&Bx?49lr*n z75v*m1lL6MvZ75FWbYGywP;o7r&hEMpl}A~@spacBaLvQXoIEf3l^BMh6Jcyc>VbZ zS@0p%s$8R%?*OBnH1WoM4nX?3bGK3pcXHnlypeq!9_9C0!zc4nmZ#bEVZ!xchadOb zYL;g+_gmpna&RH}6l)-blv-}=(btZ+5PRSW)&pJNS9%)#JwX7s(6>^Jx`CTCqlfez zWodKQaB7Ne#%JJ0u5pJnqx82EWq-mY+mM;HK`e%J{={U8nXx4%5_s zQMX5{p$fRB++-ZO7qs}7ozl6Ejw~!Ay9=YNlF~>SbGQ+{lA-JeClhXgP4+lEIT4&- zF3H7YaOp?@zhifWj{nJlKky~ivMj`>#hmO#qKpr;us;)5&vemKxQ z*0Y8-{F6B@bw-ze$fZprL37f2?-A#K?1@Pi_HZ0)aAin}+A8x5Q6OY(KuWX&zs`mo ze)PbWY)f5Wh-?x^kc3^7a!VgMFME)Qem=s7^{-nLNM=)ZC;%%aLNr6x;Ai6oh`EJd>&)MzY|+7 zO@pEaeHoMSe-4TNQZzKgAO2|^{o^eArazWsPm?{@uZPkiMHd?d4(1>w5sXZ1qb}8Q@ddB zKWNp%&`XTjXXqMlpTaGddNN|(J7;8mgtbN{u@RI+F^aCZ6(mn?ZvOM;S@hR7|A zzCsy3J>;nH#@uNecfh+mwWJWe7&+BPN6xmsezwfz`mn$`MvxUQeOcI~-OVdnWZdDc zQOp1^v-cp)AyDj&6s*?Dro%We4yyq$7-8VUQ~4Ichxj+kEB6qY*0sDRjbT?yC}jnD z-p9wv>nZJ%SUdc|4Y%|yPcB!wBZ06Q+dg6ulxgTUQ{kGTDp9{;N#U3(l4%$=qZ_!b z!ql!#E8fIX1RJU|Y)T2)sA_Zwghm16h3CjAH0zhSL+9=*y7ofnqWxGvmbSqrN~w$v zUGhd;t=}BsU4qUdNq=K%2avBsGymXRNZ4MhZQ?GV-g zPaUrG^t&g1_gK2Fb==9SxND4lhIuSUCu@vCt}>@YrQnJ_r!+JCMiz;x9oW%|G+KV^ zF^#i^;Y2G=rUGAhy>Cm#(PcMV&PX^Vo~&W{K}}=mIFhFvjXQkfZIwP@PjW;jQs;(Q zHL5q4Rc0Wm8zy7DQkcOemCCTnKC`Q;W~P1FxjH*8)yD*l89I)GFz*%c!D@;1FNrgR zlfbUWO)DOP+FkNR&1S6c(4}udWZoye&Wor%a^!gU#-W;La`%D7jg-?Z!LDbao2tc) zUjKwezphLnSDcR`I5SQ-2S|OF3w+t%6yPj!Qor!MG&MiRbE+dsoz&j-7Hfw3C{@xW z@s5$@he^?j{;q&HuanAFK-I9QX!{SLwo;Sd;lZn4;0%v9w4R`16)82lp7NGI+jIr) zphybAOH(Iv$Q-N$ath$6Y(q{mN#N;Iiq}o5@rKE=%5|#@~kB63W1tBo& z@fNL&tC5y}YDhK_vQBD1kOyMR5c6uiRzjRq$;XMU9&}Ot#mZ=K%D226QT_DlH zQOyB2SF4m{$BJ&tYB|-3gpau@BUl}exq&iS`j1XFR#qg&GKD}2=n%5SKxw`lZOI@` zk3#%ru!S2=b&^Zr^b+OAt@AI4AwOcNn4I@4mh1dykaNG0Q%+H<^&GrL0`3!q&B>CJ zF7zCm1om0y+gK1+L1!&O$#jB1f3+)|7p&BoB;+{1L08^RDXL3-CGh6XD z05g-q%R{=jXCg$FooFTm$U{feqSqF_%Mjj6(e*`>CG7f2L|eW>M$Y$6$Kr*VvrhHDlCOMmhgRp)9JbCypCWNa`Cn723Un>F?N?{%03bt`|;TmI8-Nn-A zAQTaFNa#-XiVP~!`v;9f`zJOGB~6dK0GUZ`PtpVS^hr<2G10`q*zn`Mc5$ zl`YOAo*IONAupiSxBuR+p1DbKdV3Te=Zyd3O5z@;+H_NT9Y3p?F*9U z!zq$mP^wfyZm15GRiJ%6lm-WDycsD3%9)_rD*F$;RP>OWB@r6v`ueqk_LfAhNPnkP zVLXY@a?UFhs4S|6-I}G&&{h>lRC2))jpC_>I2kmj%Zfftzb?^_HAt+phFiw_fC;w- z{|jx8#{Prv-3Q{F=X7d3O`@Nt#uAoOSXGuNtLV7>n#eWsPhZd!nJ+50+7Rzkk?Lam zxodYn2Emq3XAFICcHMgu?d0}ec<=fc1>nab9+a^>t-0? zMya5U`e`<@zzAJ&RD!fXAQ*C+`EkC)H3I09G9>F?Bl!WTiYQOZ^#rcsCXp zddn<1xV4+S^S7Czm`-1Vr61$b^P89stq-{SjGcu`v^u;kbcq^}EUGI7^xcwI*O{K! zvRf8NmRx4m$mbiww`|78+&D2yv_$B1C*NOjFey8u;f}5`w1n(V^f*a>>kL4nv2{^0 zbsYW2$=VbRU1EuRTgK8g51-#Pvd=7r)2CYXZBshcsa^lRykTAPT;fr?$7KM{Q?upk zJ@4N0Z`i@8u;<5EAaj7MJa+870(Ipylv@_*XTR^&0stAiqmrmakluw6&-5U*I)4?v z59gShYY(YfUV;v_Losp@U$Ep; z>ccC3(^iwZ2YX}&scx9v9sN%KZHzW*wL4h+_Lc47mdq{lH-2|5z3{IcCH$C6DU{w6 zl5L^E>RP^_RlcOxJv_6)ZxTCnq>ll0sC_q)Wu<+UjAsa`jHKM48bm7l7Y^<}9lfL3TsNGiU0Y;6VL!jChgU+^dp4R-_gIQ0ybvzdvcx%YB;*8+ zB_F%xi7c;l)EnNJY@i5TqHBB+`Z6AZh}K61BbDzdcI9X4;s{0ft5UK!JT~?7`YcMX zu-|_0H6E>hOaxoAa2#m@r8je#e^>5-SE#J-_{v8E7qELRzM9`-D zo0;L)k(*0MH7*mivqqW9#8V))p16V;acAH-ZJrU`{=;f&O+sPcu8UZuXU{f;L?6w6 z7wQJtX%?V{MiRN3UxTi7)-5F``cC{yyp`r-EU&GEvh2F!jI)llY$(4(1$8`F z@r?Zj;#+9fL8D!RNX{GIr6#wkXMXR&>|;W=yVI@3qBSNFqCe(PV}C`QY+dh@Q%I20%`+O}mry7bd!wDWxD|zY;O#%$;pkFsGwFhLuF}M} zBUY&!K$0m@E{!h+YK_Y7I>F1{!VSS8$K7T=*<)MEt7P4~&EdS6HS#$LGysRYR>m6_ zM~UuD(~aBY!*f%acqg3vuiCr+ob~gNyQ!1?)Q`*kROS4i&-(vc`FNJXgiHWGDvyE1 znc&8|_78$ZWO;lXQ(A16F1>aZ?e{(+E^_Mgfz~UKccNWuDJEesLq@`8+ezk!`#)DN z5ZhqlU;`uxW*?>iioNc$Bl=_I{iC)C2f82boI&cykMIFSR_M4tW`N)Pl+m&}0yUU> zt2v9xfRdSxs6zTM51&aZ7z&DhK^Z*|w!|H$%%7cjTc30wQbU)+X6Q@yN+DFqJ-#Gg z{c79R{GozFN3apIxF}tTMh9)wHlH1_r^g3P7v^qZT6o0yQovfuo*f{CkEP#rFrL{{ zqRR^FD^v#H$|!7hNIe|I_mQXPBYQC65=7e*HqC{Qo=R{;##^O`I@l znM+A03^6{bpW@(CF2a66L)x4I9g4)iljin~yLxc|j?BD(dF)bsS ztJiRi=*w5@2Nv)ax&o;w?mNytDSWtvQRtvuoz=z*%~d$o<&<63_&_{l`VycfgS$zZ z5*BQW%q&sKU65wn6Q&A53_V<|Z?wEN5%i9vgje|`Y1!z=Mnv}NHmfaJLO((~0)gr2 zFtO~~nt&9Sg@tei6Z=Ru_s>Vm+!BBMWn%;$_65bTSoJIhc`uGbgvR?~XLqhss96-l zEda||;R(9Cz@y_FiijFhoQ>IUL|Bi3Z(aU(zcHtU1;K9#KRmMRj`jgwk&dM7uE)n> z7X6}~mF@W4wwP>%Krj>}3(vh~U1YKkBVwMYN38%|+B=BPy$Zz1x9p@1B&j#*mJ3_b z%9a4E>UlyC%d=SU9RAU)es=7{wYtlU0Uu1SAOk$bh8Z;;R&_y*D( zY;H?KCWqf4I_zh=i4C+|lSvI#T$KUTt|I>E6KhV85f3HNEHR4}gEFVwH#>2 z=+Yu`Yw>4iwh4IFfn<2by;A6b{%i9CH1K3Eb%}w@M@PuJ2MFaX_D^&x?oE^#` zMfS@T159eu4I7BXP|_CxTY1J@sniO$vQ?wd;urAy+iQ5n*N_#8;(SJ2vwJeF5e3(Z zT!#~-+@TDLqe`MC6or@eL&9T88uLjC^E0v4h9w#{AvP8^Cqow!%RLD2b;^7d0fc5= zykrJMtcA&Sj6v^VJXAajVa;)H7aRVB&}~7E!SuQf5PK1p4fOJ!It=P&w`hSlbhfbA zC59YF`CRc|&K$4^XS@EuY_qCwj|-O!fcyZ>e*A(C5p3FILdumQM4CAMv_~q6!>JhJ z$t+yOfSLzRvPq!Vj8q$dA3wl5oSxA;(7D1$mp5;~X#Q(Qq!tF9$dCAPtY?r!p68oM z)=3LAL8w$p%3XXV6nsa|uK4-+Usi4ZQ-CuESezPJoGO~YN6|Wo@_y!}h?JU94!9(SOYM2i#e!c+x z1WO7kD448dN3?zj`kG>U)hwq(F_~O33TWYg>I~i8oX3Ow;P$-C{(IFeBtev^qllEB z%;T4h3fWV)KuAV3LBCs_WrQCis&V1cd33`;dd<=$wZx(xR;GXLrp@(+F0taOthHoq1t+A>41Z6vNcy>bbpeM{FwOC zAr_PtQ%6lwG_D5a?U&!JvyDfKtSHV9i+QSy8{i0x95T+EBMNNxtXeGA5XY2bAe!0D zM@2uca|-94?Ez>67JAy)9qn@P57i1IjL8}!N(1F|0zBnT1NL;C0epfaau*Gz<%=5# z_H@zjHBueqM{K9b0XOH#p*Mq5%q49` zk*jmvT;+kJLN)FwWWx$aM?F70I7jBS^0HBMrnQOT#wfHtYc2=u>O9LuqGPCeG%jyg z`j!I?8vS`R#W?Me!Wv9LjblEz8e9y%gcCdADZh)fb>%WH`08br!ee2JC;2>V=nJ*s zKBe%ZLkNGn!64vmXSyqjm7|)>QS}nzy7(5k7M84LrPua!!EYHZATIaAA6yMdVQH}l z31#-ihF8`0^SqpeO9(yUc5R9*dJz?z1(I>hiPCbH2Ybi?8MigK!pQnS^Iy{gvZeE@ z%f~xXx!8HOGV!?64O?#c0lWjYVT2=892{3-r?6&Qx#}}lo{A1Eo7BR!U4TFPS{;0b zl8JyiCjg#vIK6>hW7U{8Grg2!ee}!Yu4wyI3lx&0QreAhX~!bE@qD4h)CrDU z>LnZcne!Qga-z2V1W9Il3=}^9s$-av0xPe?rDHs!3aPgF-))Mb&WIwwXr5|+bw>zw zxrABV48yKAwAlBhUNH$}ZjRCEiJ_yd`_TqK`CICla61N}7NMutk%}aXo+*p|E+rld z_d#clP*6mh?gc-)0 zF|i%ypv_nc6|^_-V8<+bE`iIGE(!eyepKkP2Mvy`C=uoG(h_GgQIz!Y=-Dj?Fs=c3 zGxi#euN@K{?X8!^6AetLm%ExKz>0L3+Wknz9?{hrJ}Ipw&I$Wm-@Y(m3$OK2eB1Xy zB$Hb-Q&~wl5Vt-rn{r-7q5!bM^7qMW#1J-NNqX4a}Y za643ZFVxgM&F$^}J~#@W`f3X|Q`3ARy5k+NI z?|=~l!E?n*Ev)3=BM60Zn4SI>&Q9+kFcwzOg(18XxIqbaW&$xap$KF1z{*0aULhdIq57k?OWpjF8GE*KKbONTsBiQGtpWep6v)Ui$4*qpUYK z5L19(#)_cMm~F|0E5Rj!95f;Y$iy*$yFLyak)4FC+eSit7Oh0HxC53zIsE`J;07%B zs7=U5Y&WD^oM3KfJS0f$Ysk%gmY8100o(Kf#AyDQy~a$CDVASnEGVWPS<6Tib{aDP zU}11Lq*aqx>yPX@(OqZ7xa6w44My8}TkbB7sQZ0e?NSx+DWv@EADLM%(t966EwM8{~5IGBE= z0o${HbDp#0C}~Cat)Ql~9iqTTVbKZj;QQIsibjtVzL9xK?gfdtB^$HnWpO|-BLg}1 zn_>o%Pe~)W#;<72BeCUC!HoC%W7htLI*kU}QlJHzWP6|){zn2pi^0Po1r5*A<5xY2z+i?MV#Pn^a{-zCtuXHD*|4N4a7|RM(rW!V3W1V?|Y8&ou(aQdA_ocatIU z+7$nmWUF)p-**$iT9W)0LeV*LKVLgAcG8rnFPPtLqoA38>!x`{%A1`Q zZn?(hwrc`&dbQT9+&ODfu<-3sl3cPc`^q|SwU~cfGhRZ#!HSg#H8O3lfq5`vSJExZ zp%NsRoh1nfRE08(lXxs$0x^GDVyu8zq;l(!b6cNRFfR3jo5!o z0L`TIV=g!q`^8Mkz#QIy(u)f<8J5osG{+(FCxFyGN6tn{0)|c zWHxlaoGBn#h1s?Wv^r{kq#`m&p2k>LoNtQ( z3M6;V)(X`^2HxQB0E4wPW$K6%lpGC5rhykKAMA<4ROHJFw9;PBGhL8}@5!e0KuG%Gh@6MP~=>5N2|iWG1p zz&cK>LKYdsTf(Z1sCqbIa+c2NGkw?taddPXZaxTmG)#RilKr=k$`of(RpS2PntV zhV6TeC9W_San)tP;tUEB_<85$>y$|8OozhczrJC9X_Sj|0IB}aVhe*HNRRqB#xw?` zNx-OK9PG(MYZM1tsP~mSjf7EqGNn4jglbsnzV;$c;)V$<6tj^x3`+)|=VZpbY$>V( zSgQrQ1YOWb7E(m)PyIPm9rqIDRR~mvvQT-k?h;y)^&_3s`pmhDWu-{l-Q7x!Ez4ci zkXFlKyW|m5k@{-xN$CAUTpfjPk?|7a< zTiNFC4U^BW599s-)`1epd+85o)Q!=w;h?3ylt6+`sz*grMPRF`vn z3mX>E%FzNuo(f7QGNS_+fdP-L0n4SumYieSN7y7!ZC+Peih^(|$r0DRIVcF>*$=EB z1wK?_nFY1$|0p<9$30x-@Osuq2!D%J&NMWpWmKn&Y8M=jZz>p$H3Mkm%Ij$@IF_P) zH_S+*WggO|iK0qQBCKR87NookL1!LL8<)AQhL-*2Rz7G7KnhHRF;t8uJ3`(q=k&-) zv}dkVmGN&-QB=PaCDib26#I|k%WF=cw0iQ|`Qv?F9@fDkptgvg`h4 z1lg!$ET3SRME_}yJIRmgaZYRo)F!p3_|3gUD!xXO0QrFZ_mt2DQ>fH`tiX?c8qWWu zdJr}=`Cl|`qsT6Je>vD7*&|sbG>C$N0xnkq{sVnXDY4DXn;>exT_@jHZ5c9nUS9+w zno5>8_x0@Not+O5-H2EQ=63WYWfJu?YQl<)(0M73-vVl*A*e+xX&e;-~`~^5WZ9( zZaGl~R4Y-ciz}xF*E$)zn=Sr#S;s4XG-vrw$3A}A|Cm}7F*C9>{BNm6t0*3Le}2@! z6DVl&eC^&G^Bhh-$6wqwk>3$Gb3gX;gfs!=+;|#a|7@S*3K}lxS zmQE8%IG{nR{~gpOb;B){u#?yL-A|Ozgxa=P#u2EFTn84wP_r?va^X)}A%Maby~7@( zMU~}FzVeUrG;JnAG_`A`HLstVJTU12;&V6~2k{bq?JQN7!=eUC`z-I zo4{aR>AnBEtN%53QY$L+LkjBjg-h!q?jkGW6EMnKi{;*sez)oE zMa2{4@)9P{78-Mp1H`u74{e#+3scZ|m*|M)y+LgU`!Oh`vq&s|RV-LBlnRSxHHwSo zH1d@5o2YD$PWQNj<$qYrHJH|*SwGfv8$ed+%3X5otp0Cgj)LqqP?e-HHR5RwCGkZM zB4(dH8kg$P2uGlRvAoQ{1`dosj5-;YdlhrO{l)R-zz4|3-+nNS9&~&8T^%HSGa4Ax zVyAy%n_fsV{Rh`SfV~Aho^Sgmo%~GiO}zxe0|^WLQN@!H>t*32Pn((=0~eZ|rTJx? zPmfO*Q582ZPs(`@O9|w+qY?Rd^$@}Sp{|eyUa_!)$=EO!ZBnDP&gI<}!KZC8!&9I6 zABf5+ZWJdMtfw`$__t1BAg)$stSw0_p|++faRoXf$XmED44o8%(PfDV^Iby$c>S~_ zN5}xnWvf!}fKV(?!aZ0bz%adAZsC-!j6jZ62mP!?O!JVBpC5csTMk5sH-tPdfPVJh zjTj&P?O)`3!q9CX>M0(BHGM9x;k>hOd1mE-$+Dw%^j>5|W&L;W6QJ!*q|-5Loa1ui z^Pyka?i7Te{w_^Z&cTc|t%gEUyfXc(l&-zRv9C^n#LQ4a!njv5&p2 z{D6sKX08!Ro*5_*~XalE-&?cuRL6F-Re=gp9?@HHW&y7h|Xm$9OqbLnk>_C?4Eyp zC07kLyRO!==AArf2^Jsyb?HiLX7}(l%_J2JEUBn~BIZN#S-P&&cOe@uT)?2Y2V|1K zWenF}b%+Brlv#twlDmo)641Sw)@0kgBoOrR5}|WRA-?{;`%# zj$(={AI68+L$!Uf1(I*$G0EU-3UcO&u5n#uU!E@fB3?*M2pf+cyLxMh6q;+_3Omqp z$-){DpL*)z@nHJ5YkO|<-@{H@&97b**dIU__OD;K|5MlzvDdTuUvZ}j)5=jx_^I2= z=H<$|Wy<(8p!g$s7@fo|gI+^@-4k`)5Jhp`(yES>R=2rh!%(swYOI(R2Qjf z-h6`v6=Q-3eVt?;8!=G-sgw^ej^J$@EgHio7v})@^mo1K96PqEm*yEi-fUxjvAEt$ z<95)Y^LjsL`K8obL)yxPC9C{=QxWOxNcyZI^4>v>^Fg#_heiU``9Tapl=L^wP}Iov z=G&E}$e+d!HLkb01dH2)RBf)FzlXG*eOo!;l0pEMFuE2Y55#Yg3keyS!yIKy$h-j5 zUi?f30TtLG09aK#H<2ZU%|jQ8LrXWH!U*S`%CD=itEbg{#TR-`WwkB>GlSahpx zfe@ZrFl*vFboF!6mB%5KN&z+CDw2Qge{V_IEd#C&lOobd7hB8jMwxV6w3T5SefkPD z56Y&qS1&6&cy!4xJa%Q$Lqwmf5nQJZ=C1vKA6#|&E4%x%_n^pPa8rq+kZV1W)*$fc zw8TmP4}{ifEE3t0gp)%&Fw*P?d7?>lr({Wmuwcy0t<#%566C=}Hg_dCNf6a9Z*_4;a z`X7B8a{2_6=prTYYj{ zT1x2AV$gO{#GKGYJ=#4W6zsggUNBy4g~>fbtVh_`0dPA7fCcc)>!mLs zT&9^GknYJXMpk@bpMHc8sq)+nj)+FK=wJHBgoUTjJhBH@ZDMzT$%MQXHZ%PG{wpm z@5M4d>x(Yc{hBxGuO1XqD83umVwUwuapA55()E%CIJKbY~PLnBnh&)EZG^Nil^Vf2sJTd>%b-<-d8<5c1BjiFx}5;6EGs` z`cA^J2EAh%4Bj2i^+kbtONaClc=0H;EE8ATfcD`$m?3seM8nv54Rh^a3&-9vcfto% z;U&?rwZjQkLDyP=mOmjJewpKc5k({{_WpQV8Sy#~z3@_?7cPfPDse28GHcrouPG>c z5oiazm6@BAYTs6w@MceF*_bzJUG#;E+0B4FJ}rP&)@1XTQGg?x=XCit(--BCr$PN$ zipbr>CC3KFZuLmumlW*tQ~liVMBaO3f-~G}RBK+CiPRD76i`NOB!}`Mf(CwG= zBkVT$RRa1|`+xEE&cT_5!M^TH?Bt7W+s4Eb+jcUsolI=owrx9^*v=Q*=FL85-@51Q z+WW40*Q#1w>#tSyR=?f->!*9cLXe_0hEoDYFn|vY>j96fRwjDn3!^T`?LimBjoEBS z?Qua+SXO*_Y*wH|cz9DSow+(n_o-?G3+DxnkR1}|uam8gi2^^lsYVRk9|@`IHr-;W zna>fpnSYnZjw$>RGvYBuFDL$9%fA$#YkG_z-bmF1i$7b9$) ztL<2s^;i6w7`j{oAOl~};Fi$}06H5gR3i{LrLbm2v|dE2Lyw6jYih(#qL0J59PQmz2J^W<1h1=g2V{(ySdu$ zJnAwU_+^7TwmCxC627DV+`D*Iqo4691H<%v=xjruQxV8ILot3zj+uW13E&Hlaa+4& zR0sY38P`O8(J!qfNxqo0gFL=WD-f_BF{0xd&*?9OVu0gvRlpLV{(BzWPe(A9e{0_K z%a=fn4!OfMJSKHZt~c&YO0UfQJzL`uSDaveXu0c87oVeP*%?ByC5>{h$;>}Zm>Ne~ z!`rZx7(Hl>I99(JT2M4T)#b0JG6PHQ_ipvzvvjj4j#XJ~=^(c>Z?8h7i?bysY&B)l z!bh!-v>WZHdx9wF(D9jZ??cCggU4^WHVidoQ)4o40mEaDlcpKTTHk%}BeW9+0H}Q^ z`HHFVvb!MboI}kFql54dsvMb$YoUpf+fwaXjvX8P7Al{g+c#Uf3I~_;$8Lp>{He&u@&AH z?3grEVQONahT^0ya^9gDbj`oGhN%_NezZsNAesOL3L!TGtK)5Z3GIYsUT@rT8FH z4PY2pVAa5epq0ym`Vfy7Cl(vK=?|uudd?XA(N-yTe>OX+%;qXG!(F;5qCLE}i-zq1 zrW;%0;^!iw0A{|(eJs(#awKm$I$`l;tXtfe!eI~024%ih0M2)iyE#}_DK9jXsQk1I z2az#d{QdYt{i;e(L_vI-6;$GVDu+)&NpSJLO#Pa2y~yYAk+^<^a-%QTEI%#Y#D{mt ziP#`~2w>`#6b3@J;eTJ?rTyg)FFWo*5x87on5^kwZF~*XXo=CH`v+95`y*6TEVn$B zpyK`f(@?TBkX5vSq~Tx9>a4-4b{opp_~(F0)^p4_e30FV{~NnYooMwuJn!uUe3tK_ zr*Pf1AP&SO=pNd0((l@@AOCkSkujY?KlB|$kbW!3@c+AD;^B#S`d(5ew_~&?& z>kIjxeXyT5NagSG=BCo20K~pL#}VynyQQ7ttDuIBJ!)qHHigg-^4j@BV2qTXp%&6K z6@E526*!?(^;@e4@fCgyjT=AdSzzv9J&;awSrnZ z8FXvGhtSV@WP>Gw@e6 z>2>M2>cqP@uJ}4pv?KezAjeipMwyULv+l1wi!v*BG;M$#dgLF2?)rEZGg-W8{iPra zZ8XfK==5vmP36nkV1<10F3t9bq}X3W&KoLuN|7KO;&@kaJF zyDs<^g3>@AHvEI+yxH0TYz*M_);)$oEN2dRw+`RdGS;;!)^0)F-v~oc21TG)%P&;% zyJ4%@I%@yF^M}CM`pAymeYULwyLoEZuP3blu?Wv7NTzGz||f4;Hu! zBY691l}N6Hw^0tXbqo6&T4AjMH`0WLC|jmy+5HIjGt>Z%wS?H&;739*Cq^)bVz%r_ zRhfz86K2w9&}+i}nJ(QZUCLCh0!9O@WUgDCHCn9~MFk;_fP_HJdhgN$MYd_t(?|uC z2r?;|G*gAD)I~*Lbeh7E%tQ0u&Vg!r5otaoEJCZ%$9W`6rrag))N{)$&+u?VH@n92KZ6qV>~DGX$b*dZ9AmhjI4A2Oa66_F2=-Rs)6-NOlH&{@*@_HA%b+vd z2U;355?mn@ z?#Xt>^}!^X#-J3knS9!88zXq)%+Yg8Y}EYU@>U=L1c!RI&`q_su;j>Az9{UAF8CRz z*gm0ImrrCDJKRfrjeiQ)>BZApCdRY$nX7V)g;Jpa9qAe7Iqvr0F}82F>K+!yIS&jr z>2nJQz1`yGt`J^FQ#Ch&$6h}1?X}#szo+7$CoxXw8~aZD?i+L&{ZLBS8=9}%&zM=E z>yacqyGFgZz<+U!s+Yr{l7x{Z0tJhQRDLtS{eTKKD=jitB&tDh;wuU1n~?WyfmX@D z-6PGBF>l4+!ylHrF5>4%c~OI614#f;^_-JhE!&n3()F_N>20C8KTr-%01O{3r6rvM zOtujzI|9AGwSPMhXZtFy5XuBL2#&ku8c7!j-E!QQNut_^L&g$u2(Giw>qqXvvT(n7 zQfptvv@p|`?&{VDn-F&q)h}4C1ku&QK7pZpg#8x)(Lm|nbWmf9boTY_vKDlelWE;z z)g7Wws5y__eNhh%fk#&_`;>d{5t>)X^aA~>DXq*+kqi(+2;DF!&e|79R9}O{Di7wCpHSk#p33*_?4`_KPUCVZ)}4(<9D=c|5Cfg%0x zj#x4#PUg18|2K_K#ZnDL4Rtd`8re_5>n0T1Kj!q8|15taa#Iwgi`6f>0aM#Z(^mYc*j!qHkRS8R9OplCzs(F6gtYOvi`* zNK^p)Z9}RZ?*Pfor{Vy)1K z}D%(Q-O*7~#<};W}`$;u-!~$~QcnpNf3g z>a}-y2|^*)vL1bt3A89Llhc*U%-6fgi1kGt=fDkUvDl!SbqlTnTZhzq5pndP@flG9 z9>mz?<0M*kRP3hVO5<-Gk$tMk1rd!D4cU$Aby>D3S5Ev`%{`+>1~;QDMw8!} zZy|Qb_(ViIeiDS6m5cbqCK>$UjWF3g1YEtviR|=$HY83Xfh!Q#*EJd(fDTUi8LY_O zD@`bjmT%nWH{0IM15vLTFKaV{RWxwJtfk8sP zE*ybjk3{LPN2%@)$U5)wv_b&2+97WxB_I-+%o^V}Oyy*kqAb~De#ua!J?W=iIK5mp zznn;~kPGV(aM}yZCwU8KT4`PQG!&_DW}(!LCCl|+XFSA9sJsHc1C0Lf6V?CE_W!@C z=vhiSO7q_hIy6ZjwC4a0yE}}(IxBD)dGan-gO6H%_f}hHE0982Vw1t=5@r1IZt&mauwgOhdIE*@+7SjEdT0l<$PHZUXXf>#B=*3X`Xb2iOC1XyCyu z$r%^Ug@#zof40e$D`M9$@b9AKiMwgvrW`)?TxVOA+b7Ow`f5!MSP=x4%i)7H{;Wo% zw|k6Brg9lRqS(UmB=6yNs0mjc*r%nVJl>OnPe_!$BucKXYcdw#@Uq{7(Dfj+_gAXj z8UB9#7y70MCZm*wvqCDJZyLR*T`(cW|G=Zuur+f_0%+er5u}5SSb{s_vM?($HEcP- z0oErG7*L?<~`qiM5Xoj#GC zh3w|zk9aZi4$dx|TuYf2yVZ_7d|m~N3K%`}FZD*fY&6gp1-$XjEX$JnF*iEW$_{SK z#3yXBs|D}YZhsGE@M3^`7mqOr{`7^*n1^eT|8-k|dLPlpnp+o&)vxgnu+_&41VM*R zsg-uaAnW&3C!#HB4QK0zxkTarZI6c&h*&4l8YCVVGv7_&Cix6E4c&6%KO>ZMO{NRD zEaa}4@7^55xc)!Jj{Zl?DpXh`G)nm62lem&L6`BrJ<9*7R;c2J)lVFnZE)T8-saT6?k@RpZ~}8@BE)lw)bwl-CbsJ-O z?UVy69ZxN#J9eRs;39w&O7exejiLU!G>PlZA92|RH(O6HKKk;Y>H35|G7@`qHjb7? z@%0SN^oDm*xz4NBX{c)Cp$VWqo(ZkI0Ar%I3IHePa4l?k_*S1kw@B*Uwo?SODJRWJ5| zayQw@H61=*x-ROm#P}(&$6sOnzSF7Qib`ZZW|WOwD;4%Lw_eIa>Rf2o4I!Rg%NH&? zjyl!vb^DX|%43f|RfS+LcrAu^2t6o9q0Kj_ICPGk`&e<4!IRJ90&gUj>hKUL!+joT z%5nY|oo5`?yy^D_gf+J|b!Y)`^mGk2_Qr1TCh2ZPZn*r@oE>f>j*ZDqcaYal@xiR| z0xF>{bMbA^EY_n7P85Pfw!ESnoB}+a*r17V(@2v)b63h|jDqKno>iuW4iwU4FdF5RLzki-oulZiDKn`|n%p4{zFTlY zfF#BU1dDxv5~R5?3H=6VKfHt>bN+5d+5Ek0C0|3|#2Q&VV%Abg9?51%)FN>`-a337 zcJovcZbIQN7!VbjMqr{G-K~sl=J<21(fE?3;N%@$zouDVG+;OQT@SXwdq>Ju;QQ?X z2KwNswTHbCLS9F=)m>_>H8SPq$n$d+Zv0Ne0-rgEVG?`a%iB5+wu&;oP(t$M-1z`7o(yo#>Eh`8{7v3!v1ST-=1-%-aHXy<}8O( zDpB)!hRc#9{{RW@92SJAMtRfZ#f`PGkz7GFJ6lUl%;hoCS-s$f695dhNCCh8!^nLNced66?3T|!k$PY7aX$)Mx5Cp6Xe`UQ8J*cd&1Iq50 znhWs!dm6mru$!Jb5smduSQTBWJ>pb`jrFVB?0D^&QmUbAPtAUU+cv4_f!78)YYFN|w)GYYC? z|CE+Iy#Xz1M33P(-$qh-mtOoFow`Fq`|55&~)1LOkSvJ(+VLgP5Ypx)+&#F ziEt2Y{K#-P_JcS6LxuEhgm!hAolVNHs6RAc%XM)1!sd^yIqHs`?h#R7_7T*CO>#It zAnWf`^&x#6oiU^9LZ}s-`u?XPfnQ0Cerec0}Mgli+~MxsD2O2hlebtk>SuDM3a@Yac`bD=QyDJ;2K z#jzQBR?PdI=J=1!1ED=C73K z9RVF4foJNMmvNgJgXY?;P=plN6;(V_X!U=$YR)o~H!65MEyGOiGvG_?c!yAxJrI)ufxsBn~j_lWG5t>Z}lt9t;6Y?mEhw&>GRLe_I_}XIBs^xynm6aj=6~HE zV#r)z#Whgkd&O_;)R*zCTP;i)Rs11h^D7J6EAHqmV%S;vfIo@4b}tS#YM zUzrQzcSq%YhSF}1bx-taug`95HL}Q-5!7dhepA@xJOcc_em>ILl#5hacatHW#$Zb0 zNm9wlhPw%TyI(t@7bagZ_uJGsaIUA>YU1VL0wzW5)CnJ1$@d5a+XS%U;cSWt8pk?} zl^RC%SP5u>1x#&4F;9nVsLYSxuHPXKwieU!`cm}98Pg5F=KNB^wyw$^aIJ@E;F6Pc zM)?kdW_*$;Kf}OS0~CK7huu#N=#t!Vn)xlonSYAqehD^F53~{%9$XFfry9geMxU>s za<4FMXd5Uo&7x+EdS)%02{ktl4J9qp-)g>Gq8W!;-K{unK(2F2?^@^Pww1~IRVxoD zWA;j^MX9eJ=L60R+qw6h{VHJrA)jbt?WqHPUdT04Cf2=fvSuLC`%TaZZWjqn1R$N+ zv}X~|oH#mk*B<4#u3>?C)Mpm;-O`V8DcdFv-B`Cgls&??9ho(AVsVHyW)jZ_@l#eW zI#fMJqqaIe(@9?Xtu(!M`1aF=`%xS#(Qy;Zeb>5XqpFGSG#0OO=Vlee9upQM3CRjSC zWeblr33UUB6^|-3^_1`*$D-c=5`tlpe^sA8ftB|{mVYYWIkWctA}F~k(*PQ?%7Dr$ z;<_q@Hf`Fc^^Bd1pQ&6wr|>{2ku)xeb4ghD)^uNBn0egRHq$e*FEH?LVW_mivgw<_bkps_FXGIfpdW=m5@F> zyAmXTO@Y`lDtD1y?(<`VA-RN~o;3IPNN$t`tAus7NGmZ)xqCskKzDFUfq)=$4 zWFNF*hca^Ky|<)KPJQ!PMeT0{f{~s&b)6ER!mP<#q8(E+B5_c$a4zoCYP$xReOo6Y z#Cxyg+W^=D+F+q2PIZJTDD}EgHr{Ax&O~~oTftaTn+0xRl7JFH^B1nFHZd%>(+uQ!P zhJTd_&!dw=1J`85#uS_|Jjj-m0xh{A&ld4jf{6`g`ie`KQ<5)1i=>I8?5YAWRCTqd zo_{kVBD>LO_xsmsafffAl8-`l0flcscVW?oy9AiEf%H5eIVv~}T-7buJ9i!tq%V=O z@EBpNRru`ue(pOJbO=}<$2%Zm-+VuQ#tJyh+$ynRUb+>;w{y@ybnYHVmk`Qjo&*x5 z>b2A{BToX-Afn%$-6sNZ!CF#eO7+YY_AVO#9FZLTiLM)e>WT6S_m4#%Ht#KzoLv_` z&@yN$c}|U>bGHG7o8IsKVq@T%WBcDIh(Pm~4*};G$5)om)JynIU%}4s>9cpIM<)*J z#^`cY*cbFyJPHSJuu*V1;-x%f@+jp_$6o}W4}^7*i%b!vwis?E@n`y+*1}{^%SMRj z3wgM4=EKb+gymWz8(ju@u}N_%JM(zsg#8+W%RmtrMTySfUr+0IQdz~w+4A5}5=2{( z4STS|=gz&DzrZ_LUXUREt0eK>gFD?tc$*#)#RRZP28<;lNZ02k{ML9*PLPzhP6K70 zE7F|hP_9Rjch>wFttkB$i3)fqlhjLb{+NC@5VSrHK&m)7=PhLlMfEz=Bh#A!@4tPf zB)-_xeq4tVO?hLdT2`p($;^tt^JG};pHeOwTH0EDL7aFgcI{fDzrzC2gaOD7;P62r zB0Wc(Mrhvugd;T*&a5&s-*Y(Gf-Guo$7rrs%(kdQ^mo?%{lc*D(5AwsqadTYa*|+T z{(ia4S_Bm#Mj%e`(w>Deu~rm`_eL$kET}+czmAqC4`Ld*mCV1fKd!l5y~hbt>DS&( zMcl%9(?BC!tpjf1u!zjHq0-5~=9#2n#Kd5He^JG%y^%@YC$g!n7>o_t-8Y1(l$Sj+ zu~b3>&&O$SlVHt2!P!KM{RO4e2N-`#F`-c9oF5(^!A;gNn414F0}}bi4%<;S zKv3v`erB`a>M-&k8stTmgmP)(&DJI0lg|p=np6xV^M$<>)@_kRJ*bkaREyJ|j_2t@ zJ3BDPRCaENT^vxXplZwBLN!Ws=_UnQL$&qb{FxX_x1Mo_`ga?ZKPhf~Zlp9TUSEcl z5b~j#8@wjP+Av5SCza$Pw=T{ZC^(3R`C}^}%B+ZQF#J&%u`>np6kUqmza+3rm%=T+ zw*=fyVu%n`dB3tG#^*d0*LM*?Pf=v)%=QGY?=``%~QLPgQ(l^!<6r>y( zir!=>h6)MPw!6!|2#zcj_NvQjT#MaUL+y0nHAl>orn>aNV$$UT-4iYWE=EzTNS~Aa zrW~RdM^xp4f(18F9fO7}V~b~eKsMNl5{XfYVm;hNtz?F78myRuk0|6VZ29sG4|+i` zYlU93n7=4|^>Ud;5=zF`gJ$@B$45WiJ`L$EGF7e`ju6g4l2+i+W89-- z$0uQ@L)=F19~hI7$9o~^JrKj9TyoDudGBc}0Fg>`aRnTS;mtGWWCmg=$c7#N9xb4m zm;_NJX=_7kn>|*q-~APWdH2@@sr3dl{d_^wNRuZ0_!s!H(m)=Rv$&Fe#Jf8Cb?ve; z1S5lpc)9A~&JE{%5h3>qidEUrD6>nH@jilaV0alvlKC7&N^Y|Mn3#HS8yb(RMeRjMFg2?;d4qqBXVtdv zP_XY%#0pN6N{Mlvj^&bbZw4AB#8e}I9%n}8G7;M+*WX-RW+mHMLyDmg48dgO4kOm{?$sb%Iz&jzp z$n~twn9(l9B(Eg)>|JR9CE7j8sSv5O4X!{-AQ`81dG3JEY>^7_XA2Fr(|oIFHTO5} z8{SggwgKI{*jZ;Vwl*gjO46v<9uhiE*wDq`uFEM62JW09w)aA<`KB=!-T^n<8)J*= zX{+IiDaq-u3gryq-f)fBMWteGT{1R;Rb^gqc+@M)4z&RfQ+aU=wTx*c_CdKp$;l{n zQ(5Zi5ioqd5_~bgY22jUPUYNmUbJH^IB9N#ThWSRw@tA!fd5F9YV4lnx7!`Hr2Lyc zLHQrFG(H`kT+^Egc-n{e%e;b|3)uKOH$-l%{^~htYoz#M)dSWheit4e9*yu#8*VPV z^5fQ1f1&v?tgL=4w2L7B6MmPGAH?-`fi{hB5BxK5YU*V2;z{dHi2aK5nAyDU`oKm~xwfy#GW6iT77)*PXHe7LXo2q?|GsLQJAhnD_(UsHgB8_J(dAZnvU& z0eS0ZDBSJQ0-8T!o^D=qfz9)x5{%n2V3({tfw>(ZOdTv~x+#rmyQD1^$xEFnjbf#d zGZ>M{FQ2wej|45nft#W*xzOP9B5oN>#Rxi zHZO4<*KNsjD`~v!5{@shcdWo2yH~3ZJadFvwyTxIC`yn{5^u9D6r zilfyYun-`{AR67avHwhW4s6+;h%Je@W8IxPPvIfzdIpCCC=mCL_slN%M3a#g5MQBtw)GXyRoX z$SSSFSHMqOoo_;#Lutz^RPNueWPMub2+*y`O~$PGRdr!&3`4T{BZpCG*;*%L^21-+ z(53@BIh2K3EIM6I5silm(gThM@gIH8!68TW~_` z6u=pdG2v7~FE^7#ak|Y&n@T?#m5n93?jVHGp<;@hAfh?}a}ImXR;rxG|5!&2`MIS~ zbj!m!?-w_u;3#>Gj8G{s8&yAx*<MYP=i4n5-m2RUUP@>Ujho^9dEFsvkx=0C$?P3d8gW_JA;!K^9SooowPAz z%tVwsfjO%e zqQ4VazhE|6Iv|1Zggs_-qg`fvef&vX-1{jlR4yDB2Po)VF``rKkV%kFbHlbZNojX4 z`z#o-371AW^aeR6_o|P*xamQTTqtthKDUr6ix^ye&ury-KfD0%+j76gXD(Gum-ImZ z$r$(y_`BsnsK+3!%B;|n{0ZAX-VhBm@j?}NWjF+`q)X;)e_q!bi^--19AHKBIs7CBWF}CBG0XiifjP-s*t;U=fP!a2Fg34YAML%%sSP=za3X~a4%7$Yf z{|vv#>Aj$ss_maVwCuf(V_%o>>&&}%VCtV&SDp=gQAal{8@lD@kZcD9eI`xjaHEH~ zCQoL7aIB7a^KVP(C;b&Q!RpA9<;a&g|B}5Es&#mQY|Kf_HS@|llZzc%8b7nKGb8l? zyRs4)uZ7Womu#p{X!+}TjNKkf*XeWj0*Q}jd}{axla+W%`)tq2>T z#+RTj-mVbQ=)BP5o2&lDK{{Up9UKnXkq46J492Ds!DyB)H{}61uR09aLCW3?$|@`* zNGw6>N}=zq$DQDYCeXF{(atksj0=nJv85?!MaEtOm>gQsrcPHgbWAW$Hgc>p*NvPc z%jd$+I1`x)T^o zrAS+cg{qL3E;wdpN~*Yq4Qh1g2T|Q))M-a7UDKy)DMH*E)TrN#bIY&DkF3Pw(Y7W$ z!~yU51b*8@xyF>lNTFvUV#wPla5JSMrc{tDn*yWN_xb{FdB@!p^B;RwPkd>YMgg^& zPG8DSmhX6}{V|?K4pAcziI~3e?N5}_WQHT}NoK7y%R`U~89B8;q7PWGd(+?9lSHdL zfyP&M@m+1Co*@amY)}veS;X!CY#MGRZ}`m1m^@`m>k8C)7kQN1FDfyxUdR=?w2FsH zH@jn3s`Vc0^iTqoyK=f3ft<_uc|dA0VZ$dAsmuFk10L&#@QWn9){^?9(MAMQ%_n2c z5$38bY1n1%Xi~@WoDceX!u^)Z+%TGTP+jlVszoTJI|zsK3bB=xKzFiGMJ;bZRhfuC6V2NX}?HCsRB*@S;-6}9@6&P~>XZsJUn-3Os0EcD3 z!g=}VAtDtFX+u7^P0TW8%9P?SM#HZ<9kT|M+?nF2Vk{?v353AcRf50+S{M^Nig;9? z1iAh)+XK1RcQH>(#6)CD^i+$ikQ23fG1t}a!YaY|tJ>!>{ck4AK-H_3;KzIgUF>lW zO~c=`%eO6ab2G*?!Wto#W5h&>>disg$Qo_A?s70DAGL+fNI^H^2DhqLF%4Z$qqo^V;lzUY^I{hS#?$CG`(S`^~Xh%7KF{~Bf{Nt?gT2zb=lBx|Xe`7U%J zPf)jo#89h*OWLP~k0p?t@3=na`Qfi8#^z1+{c22r+(m5Y!Cb?=`JBK{`N{qPug4d| z;m1e(=kp_!w&dCqCHctF?if+rC&D=@cYt4r0rZ?)n8v^4Du8ft`e6n<$khdo1)@^Q z$SEp(gEB7Rye6)e272q?)AqM;yI&rDS>kcJcHIu+BBX$GL&wPzdu*0vFjJT@X_TBw zYT=nCZ$i+vuAJqZ6s(9pZvRdCZo(#t21*D z5`|=B%3F(<|CdsHS5yX7BG9R&$e$~M@2uudEmD=TE)&z`wNnUBeO_!+lbd`(MZmbQ zSggzRSEKnv!{W38jv_m%lybd^U9+8zMg*Jl*1@6Z)pDTN6ar}~PAqzV|``jPZxuA3|9N&E$1fXaF7 ze=mvl{Z4tE-HbW#^-$@092gn8yOqvN{U@nZFUxEx>FbsQkO2!mdXnFr^cm@HT2n|8 zt=s)SZEhJPDC^LB1@{r`mse=8rat*18?>!Re|1dYvn^b6RYduo~U$NzW>}7R0WX2*fzI>eQ6Q)Dp=H+>LKgS z+P2$kQSvGv^9YIdy&G`?BRKr*IYHWxnFcb<9n5IF$1RK8?#AjOAz2dmR$<7I;UfU# z$g*=Ely`aij%5w?l59=`qH++J$^lh@oAf*a(n2vD7b~{u4{m5 zf`k7WZ81Y)pWTDTmwZ215xxZ3>T5ZvDZFuM6NX~ips=2{1)mJzTC5+;b756TQoa$W*Ro#>Wys&w}T0 z9N&3nwcu4!FnUFS~~n#6GR6;l-?!+b%vw@!w{o~X! zbLea25Dnr=`#f1ygi;~0t}DMdBbgu!;rfDq7+j%=J#KlT#K#5(R+3wsY zli~3}7d4gZ%r;k7RaaDXG)(Dq<`;BvfgK*iC(A-c_v^HvzLf+;@@6A25Bh(kfRTWpB>}LQqipm?)9{wfv!7hfFD(zw5 zXfLzFi&s$hr2b)c<9hv*bRB`U&UXB-9A@BUs4*hPKZU4o2)?R&%(;zxd9NM2>h;yh zBG5ntOrU!l70=OT$n!a%hIvSO>yRLTJc9~*weqC!B|Ee zPLnK=HPBR9gTlWnJIou8kaw3xSdkQ_ZyGMG(_JsIHdrJrfS}962~dY8dlpp%f-G zCRt?vC_1d44h(Y;*2~$YJ_4EwI#7kU8Mx8)s!pWXB)-*iiu1fN+Mg*l;RRA zw~EI62}J0zzsn%)rU>BZ?@4H@39^{T27Fj>XlopDS*SZBM%`cVsdf#Rqg@2yQ2{mB zxf9+JEsLcWtGXcH5_dBDRWDo+`_8}QL7cRmozkB!MAVLs@c4D1E6j799udcv2z%^< zX^gtkBq8=Zi$}Ncs0?|pjF-8ujJlE!1{)F&lkPshQWU%~8A`rQf)55>;EN?yAVWIJ z1j96C{E;2sx0*ti+1zEJs**RRp2YWDjo{OP){s-Ygr|7ja>Tu+?=R0v`6Fv~&#ZUb zs*cX!ci{!IUE87rv-c`a#zsR{MC8Q272rj9xp=Es94=o^B*)L_+~7OcxyKADO-v5V^XhMvpqpzVRB#uC zB$&}Q4YIa<4rd_EB_gue3oW8Z*bXhCp=?z3mEt>6@<~1JS2ZHZy)^zkpp)GT^eSyb zdqVD}`i*kyr1@-W%B*0+s8J9Y+bM2q@xW;<56H=dr`}DtzZUljXD5;k|so|W`T<7P~A3)<=gTX(|t)~%jz?07RDaSK$l z7bzc;o-B?^MXt#cuD`xz$xJ-C&HCUjUWz=7VmD2PJlN`OEz*t{g6s~nfm%o3`g8!X zo#mn23zQjK_d?;UR+8)tfK6T9YU=cKzbb02WHPEdL;UQ)C(WyiQ=WvYpdL{-f|cmf zustc^IH{5_sW`-Dty)hQhtAKEIDnYFEF6cJ-6~8+5qV1(hs_U=NP;Ei-2zptX!rD3 zZ})_?*0HnzmCK_Nk6D7$DNr<9pj=c_$JG699hNDZ2gOm3KqZrs2iJ zC+0=vmvY18)pi5pRdhrB%%<}~@T$IczkXrrk#l2x|4d~->PG6OJVb=@Mf!}r#&oN^ z4gtnM`J#5KKO?uwy5aKbw&G_K@&d9^wPMElm3GSd=XXx}S$5Lu9^O)~i>^n4%=&`u zKr@kL2a4?=Y$89hW$L!)k-Oot@jCD~mP5s7btZFcp3~q3jskOZpVMFkK2~^d>)cTd z?^1Cx#HFn8tLmJyFtnCm>YR0uw3a7~&e|E9tA|$F>5**$Fko8-qyl+%iu$vz>sK6W zwcWtIg6uFl6%0w&tn^yBn;EQ-x8Q66 zTQIgLTL@Q3ThLd?TkuzaE!ZoREkpt&ekcOuZU}x_FED;;FSu^iXYOYYAkGd>kgdNh zdN+8t$}{`33y^1rC+N!m3cVY$TkV+L2)}J3Ut70eAid_x3gnYt~?FS8n><ztKZZ8uh$5% z?R?Sg{Mi=s?{!b7`9GRHn0ZCrsCi}FxOs)$$Z20uqn^spy~Bs!lq2{>_q@wRbMj|P z%)i$?q~<+UJ2bj?n3zDWs9wHxtHz3-4v>~td?moKpP%*>pz~MsD^E***7n%F_L$)w zMExGcgNXJOvJ1)vMHj9GmcfrFFr`1Me?otj!TcUp^Bxxa!yo;_U#urrv?ur5_TQP8 z=fBoZ;XO#0#pBXyj&md=+e+?>m%CbQJ>hFd6uD$(bc=@%@#PL@$rS8KVcM66GL+SL5-cMMKe?3 zlVxLXuDQI3s1c7)wqe2vyY1hnKWye~t=n^YK4qu4p0XXk+4=U<%VwWX$4tcK`7Njp z6h^D3(t6HvzQkKPc$4R)TlHp)rX-?7AGgO-=FY_F=QTDL-MmW)O>v?`OU6Ip;agd6s*xRp(jZy62Br9}z7YWSWk} z%qGr!wkLs|J;<)cOO$9~70p^OL$QmO+QIVq?#tu-9!nc{bbY;hyk}t-PjKX2=_KKl zx%`Uhio5T5^|dcqapsKGI?Gn^AQk_bB^Bj$d#uhcdiJVQ?v8=W?!LkD>}@7{SZ`N^ z+-=D249UK8iTog>Lx|vKf2h&JE|uzCpq6y-1AhC0B}P{3OtNOz=^x;B7^N5|St?p*nHvh2xj0JUhK_upz@G{i2dB zK8lh^wy{$@9%XV=^L<^%OQprlhr=E#M8<#ds9xnFZsO!YmDzdsqz{=(;LsP37wsoa z!?zr<$s}vTbl_{M*I55{{?NjBe-TLPTDVqY$*=AQSwB^dxl=-;CjkECc z=9!AOjjwLov8*FyR)^{Br@FVF?v3H}J4o1DW1fD`uit~@8@xHWx(z@7rC~0)vFYp+ z_HzN-Eqc9%6<6kwHC`59+E&-`UDJMdN8}YtCkcb9dv@kc1l^&<(Q9Sib3gjD>SaN2 zb<(!WH~Vc2S4rdu91##Wm8jUXWxn`5tHI&}#Pn(1i*~k3)@3L0?|5(erm<5aq(H+t zH>g1BVA)Y=$)a^qCsL9mcW;zE-kn=(aO-GcT1e05!-m)9pMJ5ZuD*PBY(UL?Z>eu# z&&>yG=AR0i;(o#2AbRTJ-V~!nW!4`FLBoPp(fs^nv4wVZuW57NIvaPW4XdvYljsfB zBy{U^as|Dft{1&J%Qsd_iI+airPO?qxVx~>MqS1>;A7*Q4?hH(N6I?_RGjLzY3kMO+MK{kby%+Xh`Y z8d3g8@@#YZCZVey+k=YCx4$!m9_< zYnOQu^M;(}z2b|=iB4vVxD=hd_s%uTTT_?LTiOx2w1j=x`WAM<fcv{rapFC9ut@*}V;Qh91$vPP|pz+v2vv zE}ouQMw!%7!y6I30_#2mXPJ5LNlow1Q;t_=EA{+T=b>Y)L&CFjZeup()`J4C6p9^oiw9YA^nDf6ov$Lt} z9bsovl}E1h)>GXg9*OsNOCPm#RjA-Sx`aJ{N$|-pZQsp03(Yzkb_&&3e>)?Tn_8)@ zSkE)~G;F0&id&v#W~Rf-^R7CEt?9zJ8DgnAWs$DAQv2sOOXSF>FXCID^!k)eXwx_C z;}>oCW-ShDjW{2FE{tsk=lb>R8H7VmxY?d|92CfQGBdwH3497~fN0NrTjipfw4S>? zk7s6aeu6C3{YtZ-_Sr9*A-ytdp3Le~Sz;kYoRyO(q4#y&m6V78wZ)(A%i6vb4CWac zc(63wxJUg=zh{BVgDTcGkLNPq)YdMRllVTHxI$h${?N}=VGnyVL#Ge1>kFj_`OkhW zUR2&XtSqR}G$rrlJ!^KYlO3sCTesrA<%#F)ZIgie}$Fj$OPDR;jF+t!I}Sv?Y4x_4%CI-z9Hk8TKeUUfsF>l>(cV5l7W~GuLSk zdT#D(+)v=IvRz}CGV@B4U7vL^*X1y7-67#4x~?5p?u)VWy?b}M|GL8Wi?SwC`u$|v z53RLQ!i};5reV=>Z0~V=J52R8HqPG2mco98>q%QfazMCZ`!Ju*MeW1RRRdoW zyLfc!MFI|0r}8KM@IQSprn;JQiS33hQk^XI>7lwgfqA@V2E(MStqrnM(>qiZp`JRw zrpqC8*t59nt;uDPqRqEoUl6ol@66g)^GQH|by;_%sGd;&)Uu8xEjFQ#dus-1zUhgx zL@Zv!rF?i;8?auP?^V%Nw!X%jN}Pmh@@4jXnbVE$+mCOob{5;tWgcK%A}W=nwP)}k z*BckUwW>y;3Mo7baiUYYIhIieG*f-LLfV;Xv%7Z|ao| zJCdhepHiA3#=UQKdgq(S)%!R~uT*~yTDX3vTa)*&=EAO>Zm+$=gig*dP$MtWo8oD1 z!#jHwiS3%SeA&UXTDwk(3GXtit>39oueE5XPsX# z@1J$zUFY$2Pi;2`u7CNSWnJDqzely3Z?r}P=ew4^y)OQ?&ZX*OiDT2q?&d_oo*(PB z1L7iTte;c+earQSQhCW2-WM0y*#~JkDNkjycB6cJV^9>~Dj>5(*e(5ljYjaaoHfEZ zC$x5~cg+e5P0xDvK5+fCC)++OR!ztZ%!-_A-*RQ&?pw~h-3g`k&Pwx#6vM@nHLj3r zuI~Rz8|L0(YP4q%mp>pTxr~-}cJszFCk-zPd)*T%HQTbS`(3A$j#$NZS%tD7Q%m-= z2+56cYQuvi*AJLG9Bw>yom;)iBOemdbuRV$G?&9Cq6EBGbkDpllfC9iq-9x#LD(#0 z<$Iyx?D?1Q81Rm%INUc!|}q9$c2+E5o~SFE)UiG_WH~$Hyey-|C%(XD|dUuFniI0wSwg>7qH8*f}&SzMdu=is-7!`+7D)aaOl*SXPscUbvm%Y9Cbh5O%hd}q1- zE-q`Ny5gLKrY>N_=OJaTsxt8puaQv9!xs}}Ww(OiUU+i6h z-3^ke??PkSR`o&1PvxgQqjDR%l$Yz4$eBs?*c5Ao#3d{*KdfUcq<-2guN5GV8dwW7gt&-z5%_zKY@Uw}o%T2p@{`l-KjL zXf3(Ap-rPw&O35miQ1ilY$FrW+8K?PZBk1=eIodHZQJ%-wAZ#ci*=dEqFiq~Rg$j>xRN;LlN-l3j-tQ8Jxw zY}wbQP`#a_ziPwku-FbK)0l|mskL%%WNNtHPL(@QIVidnH}vJLwyf`Sxvv#8p|W7n zo0~ouEr@>;Zkf4?M*SEExxOxdwl<<)qxRH zg=mh!hox^c6;Gj_lH`q)+ES)fxIiuY_L2SPHD*hQ^u1td>iKC!EVcUiNhR%#bawpv z*WCGhR-H*jJvUMtrEXnWT=0PJ(juSX&F^+K=0-+t=YD)Q6RdzmMF%JwV{;~$pBW#-Ele!f}Rn;nwe*d1GWbz2k(opSOU^dD{!8PR`p--4dYqtmNtRf)&Gu>J3jiewwX2 zaOGZx^bzw1_g$K{vU(|qEdGqwJ25iA!7F%F&WL>aU8TN=d5ueAx}>~RII&=41E0&f zx0EK%ErQ%Hf8^ea4#U4|$s#WAJS6y&6`3khcixQO121G6g2#r{CYdS_&kr9z^3bYe zp|Ej#jbZ4GV}svrEHIq@CCY@$z|fHWi0#$DU9;HFShZ?%MjT+5Dl(JlzITRj|GkH4 zy~gdT`oZ$~JM1I`53;YZY6#f5@L&P|%5PTUdv<18lFOwc0@D`RMqk*$IUw@oLE_2i zC;45s`}7@bWbJRA%c(E;$n`Fc@If@O0|9g%AIr7lSh){agP-`v3a@-sAS0 zt%VGP^=fB6NY__rl`#?SyZX{lWQKr3ivA)QnQBgIO7xcXX9LY&Xf`SzNoL*fohQC; z#iIVHL+LTWLFXD@_SwXDS9MqFw7=TgX0`q2*M1)TnW|#;M;q5&%$Q+8m~*-FM)*a~ zW0o&3t#@wpuFO#`X>$~gk-2?Ns$-p#*2;#2?~5j0bwlm*0+E{g(b_#7)8DN>w!`%z`DnJe zLRM!M`H;*W0f9lyl6QpIdVyZf7MDoL`H!AvyJlUqe=kcrORFcnR&#pZ?tS5uz4K~S z|ID|Fq`IsoMb1z>|5wqwY>^+Ncgeg_3X$Y0aqFOr*vwkjt6jRd)OA45ebS}0|BUiW_0QW*X{oQxQ5tzt8l-i=KfV0P+_dFB&%DSFbDKXn zYIN0a$gvm*CpPfbw!9{Kx+koU?Ys2oQr`Ts!}cnt=Ok_9=V_TDl3DTefl9gP89|mn z{z9QNzRqWRjLmf1&q-v?6F<5;{q)&Eo?&r=lb-s{dS;i0g~FG#uQ=`Ydda;*_~}N1 zIxD$l#2p5vl$5W?IAX_JyG{DGe`K|v+QUSA<*9q^rM5=y5<<4=38n(dw1}fy2X7V1 z*othudUnU&g5Fd?+tlM9!#jEw)ElqZx^-X7!WMt)!$%xE5~D1nTWIC+u@|n+%X(-w z{TgM5ZlH;|6kCSUqG<8MWkH2V2r5~(mGbss(c$L0DeQ0{c>#Np!-F6$M zo$pQDc((PEf~WX2{u?uDh{`3`8lR3jt zI$J001Gm#b~RCJ zx-&+pd{jM8b;Q}DVl zhG=x4x0>X~3ZN_oQ)rFSe(Cy61`{}@f}VA ztA5MpQWFV|P8=4(;iM5<_{gZVKTP+nGP+PG=Uqxz5G@T4q10B2b*2uGP=o1BS8f8Ah z2ubFXz@kH~ZS$5C0L&CZ4B3x2IG{rVeK*tdgPh@?KVXK|MfOL%F%ViS_;9!d2z@;q z8KcL-7hUHUF`vJj0k;)GcY_W*cG0Lhket!F+8=tZNlY(XWO`}qY@@NT|@Uva?1S<1Q>x#)e& z7Wx=6FUo{6r=x2;wL+w*0Bk!OY=G3*GkhG=odgRW25tcqGTxnHmfo?|%B)k9FYaBm%lH}&ZY=-EShpr5neC(o8Rj88}fo_}-=M(XK zp!yIPXZ9GG9?q@%(b$H*B=^nesJ;|R=s=_o(;#f~WXYzdHe%T6E^#H5N zAOdO18B8X2qpMEGDx9NtDHsxvqoVvdOq>;bYUcMUC01|cG53sI16tAmt&7ld=K0BB zP4HyjP?HcJiV5SqyT7#kLn+Ak3F;$9-_oo}$U!%8+1|mGbhoiW1CVZedDnfubisQCWmR?p$Wf#L$r>JNFXsIwtt7F&mW!Ct^o)fE@)-!AODZzAu#Y z=iqQ%cH^u3CpVa2(e)G#vrHWVJ4QpeLg_ko(Wt9mU;+R102pkUc>l_BGXgymWO0r6 zeq19u+}D@jP9Mb`C_cV_4hWAQ1uCL@Y&U^bMJLoTF|W~~!~hDONWs7*s@Ua1hR4;y zjqIjWXOo$lu$_|;do!&spn4n`42NU8V zbUVHcoaP|{Hk6;>88dDs#Kq{ulQ$*zEC3y86Ld`BWkS?MCx$h1++qcyFLaF)@XItipSFFV;W214QbUayjDZ+#X(30gb^{GpPSEg& zC}SXoSF9?pY!`*}CJ4zBsbQ)(V<3i8ZYe}X_kxDS&}<}dSc)-F3*F1>6l=;jp}DFM ziAbQLEMuTHIxw?BR{96~^4y}U@ED4i6^%$Cb1DcFnZ4H^v7-&Ey z<3o)JzCMsB31p0+y_UV4Tn^!_1R{{5P@Do|ybYfIwMHP*558iI^rUmb15XrjI1`WY zg+mss9y728x-Eo0a7q+`vJgDu3jG2HG~6V|%E;3e`NM#`1|~+P%wk70EELG5Fy|+c zL$QXQlBLb8kAS#w0&!$56Cy_TVCA>t5#)tQg82A4gm*m?;+PfCjan&RvDOb#h&k*X z$RZM*w-;kFI?pDJ=Y%V?-4%KPa+P2P35{n-a>xJqCdc?PHb&R(b1JCx9&Th|cgY_U z<%lQy(3g+`>`3$y6w5_?>q0tqgPM(?raGe830o%3W-tpe&;1^95R!latWhEhM^eCK z`RE3oJFsNnBWQjIf(z*|voJLB?{_L=PoKXO>9RzC6~00aL@v~ZZez@|C&TuRCyDHb z)&FaW#>N_sV9036Noy7{!1*85_hj9Fe21($VX+d7}n^pET;_Xf(7f!IM6RW;lBo zX;yTy0G=)MVI=d?ex^)}BtFe5+A|({+I6Ujkj$lrm@+Y{z*ti%t2i({p$j0H;;~Gb z7=>Wnl(NN3VW2V99UuQ8$CxqEdz9SyI0yQ{pq-#8atYm`Ti9 z1jpaJ2(A)_jQ|;h`zx-X!N*Q1qU%~Bq1gKk^xObml11RIUq{2)`w&A7eJGf_AkAfU zxShbsfqM>u*PDyVW0qBG^4peO5QLS3`QzK0orem90*%39(Hk6(UM;kj588{I(I-7b z!_g0Hx%v3|P(qpbWr{i5S#M}C1#YBY@~g&y{mG<|P*uhWWQm|#PzInH;D(luT{P-O zD3B336p1tS@x@$=5_QtEHiW?31_nTu0rWjK2GFspO3sKxq!2yyw!l2JdPju zPzaA*G-`A8%`@H@^0f@PD+s=r<@)ll9l_V26s(8fnmeW{J&&$@ z!4QgFTu^n@x545tZV+x{@Eg2AMH>4A_~T*J!z?K(dWvG9;a{NP$N@^Ng$Z!XW#}e- zUVH3|0l4Z1+(=dVI#9_bL~lIN9lOL_ES2GV9Q;mS-bDfrbutEGj34J8d=1zLK=%ni zLN{X|#^AAk<{aBp0CIpqks5OJG6rId96wyOzaL}6;hJF7L;^ed83Qqv5I6+;sM?@i z1h^XsEF54A#8^Uj<1dic0>Mb%heehln%@`$N8OECiSjSKnWPFadE8@szH|T15RD#> zxAuSG>H|%Uz(LaRbM&H7tL0hIQq!MFDLU=Q$I7SZ9r33EI*q=&?}+ye#MowO*}^)! z76LH}>TYC5>{Vm}WYQ5|SKxvUKpG-WAD`QfsG^e1Apw&;@$Q6G_{~^(LsD#8++#4I zKKLD(h~2d?pg}M*rEjz#z9c(-j#}1x(;^X~oo^Zrr!ndx_(`LNX-|&J#2S0MOc%kH z9ZClET8=8f5+4?7N&4^ki}4yun3D!|pj1kQQyECdIqEY3GEw#FUdPlrP}O~cjbE%l zC67)`!F}|jDOl(BHiXMO+yu-x=n2Sk69cfok1|M4;EpMdwH#pgboSZe8s{M872yw;sbskyTRs{ zU#t0g10r2oc>FwO4S^XS-NcrO#u1MpHF<*{TOcc2_aFw;RdhDyXw<)EM4s+7PB4HRLREY)1E?)25Nl&S{mB{j&5-IS{J&pX zH43Fsr$G6P<}SK|=uJMrx^f-8&{_`~BF}7O!5k5bML!ny=L7&c)|kCTOB(!R2iX|9 z+1N#+_Q75&7M3Bhe<-kb1(YmIFTYwn7Q6s=l8kIMFoCxyo#WYoz z2E$p%K>EH2Y&sFVAoJ6w#-slZGf&w#4mdr5Fw=rbr#3>A673&EF$unlt3x!8K;X$h zHbibE*j|{t6m&;Z^?xXT0Ja2F!br9%obyBYW7Jq3KLwN$BBnLSpU67BD=0u?abEih02Z{9n&U=kn|<`kV*c z8^A@5)FyDo5VO;)BKWysP4T3TvOn>F_~@Ik6QtkF5J~@vHM*8uJ*pP6u=L;}Hoj(W ze~W?qJ@*((flTs})n04P5{Qh|&?A>1B4l0fYJ1x zbOQx{-{=8~{yHXu%-+cZSXem42Is&6C=+djl~_ay%6t96t5q|`?<2m0M~zW~Wfis* z^p@1+%$T(T3{(x-7C9}>fPJOO$v`I$Xc)AF0XYs#kMyzb)Ny1u)AxHv75QYr?-gvO z+pRVi25WzhP(Xi^GJ{->!7+u9u|@1{}(>GnVe&XUM~af zts$I{Wli&p$yxij(;4i{d1eA{StxkJ<0LDWN7JJn!GI(*gB1jfU z^H)ePrH|>3&F2x8K2-k)!!p*N2kq?%7z=tjVeSSUfIR{} zScJg8Rl>yo{b0se6R;Ar==_;EF+e^Cw>(0^Y!${57;WJch$Xgu0-fopAGre8J1Htt zwK-!Cr_%RtTtEQQ?iy;0)&Bi}0h1wM*+osC6tG4c+{pUlum)p1Q_XWOa8%MavCl!o zAR}_?qDiBTyzyAG_%sgTX~#ir`j#9rWM*hjn$K|ATK;u)2N9gx1NKLzobQvDfEn^H z=Ezz80I!Nc<%G=ndAf}CXV#hGKFSurYAUV==twe7ACvs+;T~q>f@S2p1!3P#I#;S#1J0bL?^k1RGc*y>}5o1P#ZBWMIX0vJy_Cw>&LVbm-6t&j;FXGUPh{5fwWl-$@dYB4MuZ&$Z zYQ%abQan6H3(~(Eg>i8IPLg@NI#i^MLgQO=!}WiWgWejM$OIhy$s-}iBFOV|dT=72 zp^H2`%!xjfNwh@zf%%so;FqW17i7ne-t@0B&|7hZPiq(^1GtmWagd&WL1ZccsxCOM zKneY;CFoLWh~eKqLpzM29Z1j1k(o-NALR6LA7?RiIVlSZ-?l%sm(jOG05 zFwmYLpRsqNjo+KIJ=<(Se}1)d!h%6s@IS!+G8R@Xulb>W&r*=oK0(rwt^cDWjHMg7 z?gmHt$-I3NBvr#B?2LjKVX(j3gt3wn9@@B^9VEp}kfglxf0Tr=u#;VLcyJ#~=VZjk z2V2aZ|4kBluqEUDGEYIE`A+CML|DyaWV?SE364!a>vI)C+7=`shfkNI|02bNNMBmU zSV}2#Fx^EL(hD~-m$}15y%l@Me4Ps@5vJGpWyFjYm z3-N|DV9DA4Sr~e|qQ&e!!L}5x2Sgc;HVS^ys9Q7tS=1yP_PWwcd@0D12dC*Hq?99joU}lAj#ribGz~o1>-*=S1;bDZ!HDGN4|_IbbOAp{ zmXYCjCJu%LoDQNnRj_e~=uT(?e#7anN@6S~?2Iin1MnZ=MviuUHzq9xs}1o%8^qzn zDvrLWfn4!v&6xz;m=p-a(s1 zYf3`}laRn<(h;YaLWSo=a8aN?at1%6XcBZ71sH4Jpw_#MZl9_Nar(S?5`0S%JVnhg zPUF{q5jg__=oJ9c$IT^^5b*m!2*x6A?>np$1R@Sj@Ns?VBt+PG!-GPMC7f4D)s=)X zq!?pm*TC8Ark$ff)yjsmSRt%VXwDhNlV+XVqHGgBqv?LK3NN+A}ot z@1$c-fSDxh+M=sFZ%&jR{itXVq)=oa^1{o3C*~U%X<%Oc`{@ms8;*rJ*2vQv(VANT zI=6y3kPAH{&Hutj*FNuXnNcw~P8q@kIR#;Fp9CG*7|cBu>%M{#A4mnt6YMV0!CcBj z&2M@7srEFU*kuNNM*(aDrWw0v)cf6RIDCMgGCW>SAO;XrC?S-;rxQ5%Xh~4ZgXnwk zEASY^Ukk4A7o1+-IE8?uYA}ASc%n*lYL<1wD|JxE5zYb4A5(}I0A{3C+zh4VF zUe$ApKd60z`1%U*C5?dI9z=suAimsCk1EkseETDQffra!1v;1vg4R2XLZc72j_|+< z+5tp5PHJVSl`1H=AC#Mez#WIF^Mn@vS`;_%!26>7`1=R5$u!Hsl9lR66M*A$XrOJ`PCZrKc-wgOgj zkS#6OzydOAY5rwgkq|84;bCeBZ(;g#(R&A38;wVQiW=Pq36B$0O5yk5!STNiBhg8B zj8RCK$CT-2qfR-K*8mYr?_Nmz7nz{2%qavvbfugt)y!r9WGk2p*}PiVJ)O`MEb(px zl(SZJmA+o~izRhDzZCpGy8Xe)(J@^_x5D`MQ~!sTKRh`+(qHT_vf*$e@XyIL Mu#|KZQUmV)0E-EvZ2$lO literal 0 HcmV?d00001 diff --git a/trunk/lib/test/easymock.jar b/trunk/lib/test/easymock.jar new file mode 100644 index 0000000000000000000000000000000000000000..f56f07aceaa79963eee1981efaa02aefdcbccebf GIT binary patch literal 111958 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 P)9_DON*Ys%-oMX(QbM;I literal 0 HcmV?d00001 diff --git a/trunk/lib/test/junit.jar b/trunk/lib/test/junit.jar new file mode 100644 index 0000000000000000000000000000000000000000..674d71e89ea154dbe2e3cd032821c22b39e8fd68 GIT binary patch literal 121070 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 F`9DH82$KK+ literal 0 HcmV?d00001 diff --git a/trunk/lib/test/objenesis.jar b/trunk/lib/test/objenesis.jar new file mode 100644 index 0000000000000000000000000000000000000000..45cb6416838ba263335373cd93d507cccfcdefe6 GIT binary patch literal 36034 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�vbna5Pgjz%Sr1t^Y@@PI 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 Sp`aKc|G;RFs3XtY-~JyEs + + + Example build file for GIN projects. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/HigherLower.gwt.xml b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/HigherLower.gwt.xml new file mode 100644 index 0000000..18380a6 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/HigherLower.gwt.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/CardGrid.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/CardGrid.java new file mode 100644 index 0000000..2349baa --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/CardGrid.java @@ -0,0 +1,14 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.gin.higherlower.client.model.Card; + +/** + * The card grid visible on the screen. + */ +public abstract class CardGrid extends Composite { + + public abstract void reset(); + + public abstract void nextCard(Card card); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DeckOfCardsImageBundle.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DeckOfCardsImageBundle.java new file mode 100644 index 0000000..c8b78ec --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DeckOfCardsImageBundle.java @@ -0,0 +1,174 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.google.gwt.user.client.ui.ImageBundle; + +/** + * Images for playing cards. + */ +public interface DeckOfCardsImageBundle extends ImageBundle { + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/2_clubs.jpg") + AbstractImagePrototype two_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/2_diamond.jpg") + AbstractImagePrototype two_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/2_heart.jpg") + AbstractImagePrototype two_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/2_spade.jpg") + AbstractImagePrototype two_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/3_clubs.jpg") + AbstractImagePrototype three_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/3_diamond.jpg") + AbstractImagePrototype three_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/3_heart.jpg") + AbstractImagePrototype three_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/3_spade.jpg") + AbstractImagePrototype three_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/4_clubs.jpg") + AbstractImagePrototype four_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/4_diamond.jpg") + AbstractImagePrototype four_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/4_heart.jpg") + AbstractImagePrototype four_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/4_spade.jpg") + AbstractImagePrototype four_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/5_clubs.jpg") + AbstractImagePrototype five_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/5_diamond.jpg") + AbstractImagePrototype five_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/5_heart.jpg") + AbstractImagePrototype five_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/5_spade.jpg") + AbstractImagePrototype five_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/6_clubs.jpg") + AbstractImagePrototype six_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/6_diamond.jpg") + AbstractImagePrototype six_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/6_heart.jpg") + AbstractImagePrototype six_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/6_spade.jpg") + AbstractImagePrototype six_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/7_clubs.jpg") + AbstractImagePrototype seven_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/7_diamond.jpg") + AbstractImagePrototype seven_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/7_heart.jpg") + AbstractImagePrototype seven_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/7_spade.jpg") + AbstractImagePrototype seven_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/8_clubs.jpg") + AbstractImagePrototype eight_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/8_diamond.jpg") + AbstractImagePrototype eight_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/8_heart.jpg") + AbstractImagePrototype eight_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/8_spade.jpg") + AbstractImagePrototype eight_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/9_clubs.jpg") + AbstractImagePrototype nine_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/9_diamond.jpg") + AbstractImagePrototype nine_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/9_heart.jpg") + AbstractImagePrototype nine_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/9_spade.jpg") + AbstractImagePrototype nine_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/10_clubs.jpg") + AbstractImagePrototype ten_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/10_diamond.jpg") + AbstractImagePrototype ten_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/10_heart.jpg") + AbstractImagePrototype ten_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/10_spade.jpg") + AbstractImagePrototype ten_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/ace_clubs.jpg") + AbstractImagePrototype ace_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/ace_diamond.jpg") + AbstractImagePrototype ace_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/ace_heart.jpg") + AbstractImagePrototype ace_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/ace_spade.jpg") + AbstractImagePrototype ace_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/back.jpg") + AbstractImagePrototype back(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/black_joker.jpg") + AbstractImagePrototype black_joker(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/jack_clubs.jpg") + AbstractImagePrototype jack_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/jack_diamond.jpg") + AbstractImagePrototype jack_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/jack_heart.jpg") + AbstractImagePrototype jack_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/jack_spade.jpg") + AbstractImagePrototype jack_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/king_clubs.jpg") + AbstractImagePrototype king_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/king_diamond.jpg") + AbstractImagePrototype king_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/king_heart.jpg") + AbstractImagePrototype king_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/king_spade.jpg") + AbstractImagePrototype king_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/queen_clubs.jpg") + AbstractImagePrototype queen_clubs(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/queen_diamond.jpg") + AbstractImagePrototype queen_diamond(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/queen_heart.jpg") + AbstractImagePrototype queen_heart(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/queen_spade.jpg") + AbstractImagePrototype queen_spade(); + + @ImageBundle.Resource("com/google/gwt/gin/higherlower/public/images/red_joker.jpg") + AbstractImagePrototype red_joker(); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultCardGrid.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultCardGrid.java new file mode 100644 index 0000000..0912222 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultCardGrid.java @@ -0,0 +1,56 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.gin.BackOfCard; +import com.google.gwt.gin.higherlower.client.gin.Columns; +import com.google.gwt.gin.higherlower.client.gin.Rows; +import com.google.gwt.gin.higherlower.client.model.Card; +import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.Image; +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.google.inject.name.Named; + +public class DefaultCardGrid extends CardGrid { + private final Provider backOfCard; + private final Grid grid; + private final int rows; + private final int columns; + + @Inject + public DefaultCardGrid(@BackOfCard Provider backOfCard, + @Rows int rows, @Columns int columns) { + // we use a Provider to avoid weird results with duplicate images in Grid + this.backOfCard = backOfCard; + this.grid = new Grid(rows, columns); + + this.rows = rows; + this.columns = columns; + + grid.addStyleName("cardGrid"); + + reset(); + + initWidget(grid); + } + + public void reset() { + for (int row = 0; row < this.rows; row++) { + for (int column = 0; column < this.columns; column++) { + grid.setWidget(row, column, new Card(null,null,this.backOfCard.get())); + } + } + } + + public void nextCard(Card card) { + // TODO perf will suck for large grids + for (int row = 0; row < this.rows; row++) { + for (int column = 0; column < this.columns; column++) { + Card currentCard = (Card)grid.getWidget(row, column); + if (currentCard.getSuit() == null) { + grid.setWidget(row, column, card); + return; + } + } + } + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultGameDialogs.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultGameDialogs.java new file mode 100644 index 0000000..f59d910 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultGameDialogs.java @@ -0,0 +1,75 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.DialogBox; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class DefaultGameDialogs implements GameDialogs { + // we use a provider to break up a circular dependency, + // GIN does not support them (yet)! + private final Provider gameHost; + + @Inject + public DefaultGameDialogs(Provider gameHost) { + this.gameHost = gameHost; + } + + public void show(String title) { + final DialogBox box = new DialogBox(); + + box.setAnimationEnabled(true); + box.setText(title); + box.setWidth("200px"); // It's an higherlower, folks! + + VerticalPanel verticalPanel = new VerticalPanel(); + + Button higher = new Button("Higher, higher!"); + higher.addStyleName("centered"); + higher.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + box.hide(); + gameHost.get().playerGuess(RelationshipToPreviousCard.HIGHER); + } + }); + verticalPanel.add(higher); + + Button lower = new Button("Down, boy!"); + lower.addStyleName("centered"); + lower.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + box.hide(); + gameHost.get().playerGuess(RelationshipToPreviousCard.LOWER); + } + }); + verticalPanel.add(lower); + + HorizontalPanel hp = new HorizontalPanel(); + hp.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER); + hp.add(verticalPanel); + box.setWidget(hp); + box.center(); + box.show(); + } + + public void showEndGame(final Runnable runnable) { + final DialogBox box = new DialogBox(); + box.setAnimationEnabled(true); + box.setText("Thanks for playing Higher or Lower! *ding*ding*ding*ding*"); + Button b = new Button("Thanks for having me!"); + b.addStyleName("centered"); + b.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + runnable.run(); + box.hide(); + } + }); + box.setWidget(b); + box.center(); + box.show(); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHigherLowerGame.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHigherLowerGame.java new file mode 100644 index 0000000..c0fff78 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHigherLowerGame.java @@ -0,0 +1,73 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.model.Card; +import com.google.gwt.gin.higherlower.client.model.Deck; +import com.google.gwt.gin.higherlower.client.gin.NumberOfCards; +import com.google.inject.Inject; +import com.google.inject.name.Named; + +public class DefaultHigherLowerGame implements HigherLowerGame { + private final Deck deck; + private final CardGrid grid; + private final int numberOfCards; + + private int cardsTurnedPlusOne = 1; + private Card previous = null; + + @Inject + public DefaultHigherLowerGame(Deck deck, CardGrid grid, @NumberOfCards int numberOfCards) { + this.deck = deck; + this.grid = grid; + this.numberOfCards = numberOfCards; + setTheStage(); + } + + /** + * Turn the next card. + * @param guess the player's guess + * @return whether the player was right or wrong + */ + public PlayerGuessResult displayNextCard(RelationshipToPreviousCard guess) { + Card card = deck.turnCard(); + grid.nextCard(card); + cardsTurnedPlusOne++; + + RelationshipToPreviousCard actualRelationshipToPrevious = getRelationshipToPreviousCard(card); + previous = card; + if (actualRelationshipToPrevious == null) { + return null; + } + + return actualRelationshipToPrevious.equals(guess) ? PlayerGuessResult.RIGHT : PlayerGuessResult.WRONG; + } + + /** + * @return if the last card has been shown and the game is over + */ + public boolean isOver() { + return cardsTurnedPlusOne > numberOfCards; + } + + /** + * @param card the current card + * @return the relationship to the previous card, or @{code null} if the given card is the first one + */ + private RelationshipToPreviousCard getRelationshipToPreviousCard(Card card) { + RelationshipToPreviousCard compare = null; + if (previous != null) { + if (card.compareTo(previous) < 0) { + compare = RelationshipToPreviousCard.LOWER; + } else if (card.compareTo(previous) > 0) { + compare = RelationshipToPreviousCard.HIGHER; + } else { + compare = RelationshipToPreviousCard.EQUAL; + } + } + return compare; + } + + private void setTheStage() { + this.deck.shuffle(); + this.grid.reset(); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHomepage.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHomepage.java new file mode 100644 index 0000000..539d78b --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultHomepage.java @@ -0,0 +1,33 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.gin.StartGame; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.inject.Inject; + +/** + * Application home page. + */ +public class DefaultHomepage extends Homepage { + @Inject + public DefaultHomepage(CardGrid cardGrid, + @StartGame Button button, + GameHost startGame, + ScoreBoard scoreBoard) { + + button.addClickListener(startGame); + + VerticalPanel gamePanel = new VerticalPanel(); + gamePanel.addStyleName("widePanel"); + + Label title = new Label("Welcome to... Higher or Lower!"); + title.addStyleName("title"); + gamePanel.add(title); + + gamePanel.add(button); + gamePanel.add(cardGrid); + gamePanel.add(scoreBoard); + initWidget(gamePanel); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultScoreBoard.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultScoreBoard.java new file mode 100644 index 0000000..b08e0ed --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/DefaultScoreBoard.java @@ -0,0 +1,34 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.gin.higherlower.client.gin.NumberOfCards; +import com.google.inject.Inject; +import com.google.inject.name.Named; + +public class DefaultScoreBoard extends ScoreBoard { + private final Label label; + private final int numberOfPoints; + private int score; + + @Inject + public DefaultScoreBoard(@NumberOfCards int numberOfCards) { + this.numberOfPoints = numberOfCards-1; // first card is not for guessing + label = new Label(); + label.addStyleName("scoreBoard"); + clear(); + initWidget(label); + } + + public void setScore(int score) { + this.label.setText("Score: "+score+"/"+numberOfPoints); + this.score = score; + } + + public void incrementScore() { + setScore(this.score+1); + } + + public void clear() { + this.label.setText(""); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameDialogs.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameDialogs.java new file mode 100644 index 0000000..7dbb7c8 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameDialogs.java @@ -0,0 +1,11 @@ +package com.google.gwt.gin.higherlower.client; + +/** + * Utility for showing in-game dialogs. + */ +public interface GameDialogs { + + void show(String title); + + void showEndGame(Runnable runnable); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameHost.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameHost.java new file mode 100644 index 0000000..0058a87 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/GameHost.java @@ -0,0 +1,10 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.ClickListener; + +/** + * The game host that drives a HigherLower game. + */ +public interface GameHost extends ClickListener { + void playerGuess(RelationshipToPreviousCard guess); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLower.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLower.java new file mode 100644 index 0000000..005fb94 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLower.java @@ -0,0 +1,18 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.core.client.GWT; +import com.google.gwt.gin.higherlower.client.gin.HigherOrLowerGinjector; +import com.google.gwt.user.client.ui.RootPanel; + +/** + * HigherLower application. + */ +public class HigherLower implements EntryPoint { + public void onModuleLoad() { + // Create a Ginjector + HigherOrLowerGinjector ginjector = GWT.create(HigherOrLowerGinjector.class); + // Add the application homepage to the RootPanel + RootPanel.get().add(ginjector.getHomepage()); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLowerGame.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLowerGame.java new file mode 100644 index 0000000..d6ab315 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/HigherLowerGame.java @@ -0,0 +1,11 @@ +package com.google.gwt.gin.higherlower.client; + +/** + * A game of "Higher or Lower?". + */ +public interface HigherLowerGame { + + PlayerGuessResult displayNextCard(RelationshipToPreviousCard guess); + + boolean isOver(); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Homepage.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Homepage.java new file mode 100644 index 0000000..4ce72f9 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Homepage.java @@ -0,0 +1,10 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.Composite; + +/** + * @author Robbie Vanbrabant + */ +public abstract class Homepage extends Composite { + +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/PlayerGuessResult.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/PlayerGuessResult.java new file mode 100644 index 0000000..fd65c99 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/PlayerGuessResult.java @@ -0,0 +1,8 @@ +package com.google.gwt.gin.higherlower.client; + +/** + * Result of a card guess. + */ +public enum PlayerGuessResult { + RIGHT, WRONG +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/RelationshipToPreviousCard.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/RelationshipToPreviousCard.java new file mode 100644 index 0000000..9fe415b --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/RelationshipToPreviousCard.java @@ -0,0 +1,8 @@ +package com.google.gwt.gin.higherlower.client; + +/** + * A card's relationship to the previous card. + */ +public enum RelationshipToPreviousCard { + HIGHER, LOWER, EQUAL +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/ScoreBoard.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/ScoreBoard.java new file mode 100644 index 0000000..fd47182 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/ScoreBoard.java @@ -0,0 +1,15 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.user.client.ui.Composite; + +/** + * Displays the current game's score. + */ +public abstract class ScoreBoard extends Composite { + + public abstract void setScore(int score); + + public abstract void incrementScore(); + + public abstract void clear(); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Shuffler.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Shuffler.java new file mode 100644 index 0000000..a593c6f --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Shuffler.java @@ -0,0 +1,12 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.model.Card; + +import java.util.List; + +/** + * Shuffles cards. + */ +public interface Shuffler { + void shuffle(List cards); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/SimpleShuffler.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/SimpleShuffler.java new file mode 100644 index 0000000..7b8b424 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/SimpleShuffler.java @@ -0,0 +1,24 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.model.Card; +import com.google.gwt.user.client.Random; + +import java.util.List; + +/** + * Custom card shuffler. + */ +public class SimpleShuffler implements Shuffler { + private void swap(List cards, int firstIndex, int secondIndex) { + Card o1 = cards.get(firstIndex); + cards.set(firstIndex, cards.get(secondIndex)); + cards.set(secondIndex, o1); + + } + + public void shuffle(List cards) { + for (int i = cards.size(); i > 1; i--) { + swap(cards, i - 1, Random.nextInt(i)); + } + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Walter.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Walter.java new file mode 100644 index 0000000..294678a --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/Walter.java @@ -0,0 +1,69 @@ +package com.google.gwt.gin.higherlower.client; + +import com.google.gwt.gin.higherlower.client.gin.StartGame; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.google.inject.Provider; + +/** + * Meet Walter Capiau, our game host! + * http://images.google.com/images?q=walter+capiau + */ +public class Walter implements GameHost { + + private final ScoreBoard scoreBoard; + private final GameDialogs gameDialogs; + private final Button button; + private final Provider higherLowerGameProvider; + + private HigherLowerGame higherLowerGame; + + @Inject + public Walter(Provider higherLowerGameProvider, ScoreBoard scoreBoard, + GameDialogs gameDialogs, @StartGame Button button) { + this.higherLowerGameProvider = higherLowerGameProvider; + this.scoreBoard = scoreBoard; + this.gameDialogs = gameDialogs; + this.button = button; + newGame(); + } + + public void onClick(Widget sender) { + startGame(); + } + + private void endGame() { + gameDialogs.showEndGame(new Runnable() { + public void run() { + scoreBoard.clear(); + button.setEnabled(true); + newGame(); + } + }); + } + + private void newGame() { + this.higherLowerGame = higherLowerGameProvider.get(); + } + + private void startGame() { + button.setEnabled(false); + scoreBoard.setScore(0); + this.higherLowerGame.displayNextCard(null /* no guess yet! */); + gameDialogs.show("Tell me your guess: higher or lower?"); + } + + public void playerGuess(RelationshipToPreviousCard guess) { + PlayerGuessResult playerGuessResult = this.higherLowerGame.displayNextCard(guess); + if (PlayerGuessResult.RIGHT.equals(playerGuessResult)) { + scoreBoard.incrementScore(); + } + if (this.higherLowerGame.isOver()) { + endGame(); + } else { + gameDialogs.show(PlayerGuessResult.RIGHT.equals(playerGuessResult) ? "Congratulations! How about the next card?" : + "Ouch.. let's have a look at the next card!"); + } + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCard.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCard.java new file mode 100644 index 0000000..2499815 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCard.java @@ -0,0 +1,17 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.BindingAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The back of a playing card. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@BindingAnnotation +public @interface BackOfCard { +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCardProvider.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCardProvider.java new file mode 100644 index 0000000..126652f --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/BackOfCardProvider.java @@ -0,0 +1,22 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.gwt.gin.higherlower.client.DeckOfCardsImageBundle; +import com.google.gwt.user.client.ui.Image; +import com.google.inject.Inject; +import com.google.inject.Provider; + +/** + * Gives out the back of a playing card. + */ +public class BackOfCardProvider implements Provider { + private final DeckOfCardsImageBundle imageBundle; + + @Inject + public BackOfCardProvider(DeckOfCardsImageBundle imageBundle) { + this.imageBundle = imageBundle; + } + + public Image get() { + return imageBundle.back().createImage(); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Columns.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Columns.java new file mode 100644 index 0000000..e0af4c3 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Columns.java @@ -0,0 +1,17 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.BindingAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The number of visible playing card columns on the screen. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@BindingAnnotation +public @interface Columns { +} \ No newline at end of file diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/DeckProvider.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/DeckProvider.java new file mode 100644 index 0000000..50b7b49 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/DeckProvider.java @@ -0,0 +1,88 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.gwt.gin.higherlower.client.DeckOfCardsImageBundle; +import com.google.gwt.gin.higherlower.client.Shuffler; +import com.google.gwt.gin.higherlower.client.model.Card; +import com.google.gwt.gin.higherlower.client.model.Deck; +import com.google.gwt.gin.higherlower.client.model.Rank; +import com.google.gwt.gin.higherlower.client.model.Suit; +import com.google.inject.Inject; +import com.google.inject.Provider; + +import java.util.LinkedList; + +/** + * Provides a deck of playing cards. + */ +public class DeckProvider implements Provider { + private final DeckOfCardsImageBundle deckImages; + private final Shuffler shuffler; + + @Inject // Image bundles can be injected as-is! + public DeckProvider(DeckOfCardsImageBundle deckImages, Shuffler shuffler) { + this.deckImages = deckImages; + this.shuffler = shuffler; + } + + public Deck get() { + // TODO we could probably use a generator instead of this nonsense. + LinkedList deck = new LinkedList(); + deck.add(new Card(Suit.CLUBS, Rank.ONE, this.deckImages.ace_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.TWO, this.deckImages.two_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.THREE, this.deckImages.three_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.FOUR, this.deckImages.four_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.FIVE, this.deckImages.five_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.SIX, this.deckImages.six_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.SEVEN, this.deckImages.seven_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.EIGHT, this.deckImages.eight_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.NINE, this.deckImages.nine_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.TEN, this.deckImages.ten_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.JACK, this.deckImages.jack_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.QUEEN, this.deckImages.queen_clubs().createImage())); + deck.add(new Card(Suit.CLUBS, Rank.KING, this.deckImages.king_clubs().createImage())); + + deck.add(new Card(Suit.DIAMONDS, Rank.ONE, this.deckImages.ace_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.TWO, this.deckImages.two_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.THREE, this.deckImages.three_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.FOUR, this.deckImages.four_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.FIVE, this.deckImages.five_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.SIX, this.deckImages.six_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.SEVEN, this.deckImages.seven_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.EIGHT, this.deckImages.eight_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.NINE, this.deckImages.nine_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.TEN, this.deckImages.ten_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.JACK, this.deckImages.jack_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.QUEEN, this.deckImages.queen_diamond().createImage())); + deck.add(new Card(Suit.DIAMONDS, Rank.KING, this.deckImages.king_diamond().createImage())); + + deck.add(new Card(Suit.HEARTS, Rank.ONE, this.deckImages.ace_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.TWO, this.deckImages.two_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.THREE, this.deckImages.three_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.FOUR, this.deckImages.four_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.FIVE, this.deckImages.five_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.SIX, this.deckImages.six_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.SEVEN, this.deckImages.seven_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.EIGHT, this.deckImages.eight_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.NINE, this.deckImages.nine_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.TEN, this.deckImages.ten_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.JACK, this.deckImages.jack_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.QUEEN, this.deckImages.queen_heart().createImage())); + deck.add(new Card(Suit.HEARTS, Rank.KING, this.deckImages.king_heart().createImage())); + + deck.add(new Card(Suit.SPADES, Rank.ONE, this.deckImages.ace_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.TWO, this.deckImages.two_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.THREE, this.deckImages.three_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.FOUR, this.deckImages.four_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.FIVE, this.deckImages.five_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.SIX, this.deckImages.six_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.SEVEN, this.deckImages.seven_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.EIGHT, this.deckImages.eight_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.NINE, this.deckImages.nine_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.TEN, this.deckImages.ten_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.JACK, this.deckImages.jack_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.QUEEN, this.deckImages.queen_spade().createImage())); + deck.add(new Card(Suit.SPADES, Rank.KING, this.deckImages.king_spade().createImage())); + + return new Deck(deck, shuffler); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerGinjector.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerGinjector.java new file mode 100644 index 0000000..73a0bdc --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerGinjector.java @@ -0,0 +1,13 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.gwt.gin.higherlower.client.Homepage; +import com.google.gwt.inject.client.GinModules; +import com.google.gwt.inject.client.Ginjector; + +/** + * The "Higher or Lower?" game's injector. + */ +@GinModules(HigherOrLowerModule.class) +public interface HigherOrLowerGinjector extends Ginjector { + Homepage getHomepage(); +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerModule.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerModule.java new file mode 100644 index 0000000..5421821 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/HigherOrLowerModule.java @@ -0,0 +1,46 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.gwt.gin.higherlower.client.GameHost; +import com.google.gwt.gin.higherlower.client.Shuffler; +import com.google.gwt.gin.higherlower.client.SimpleShuffler; +import com.google.gwt.gin.higherlower.client.Walter; +import com.google.gwt.gin.higherlower.client.GameDialogs; +import com.google.gwt.gin.higherlower.client.DefaultGameDialogs; +import com.google.gwt.gin.higherlower.client.DefaultScoreBoard; +import com.google.gwt.gin.higherlower.client.ScoreBoard; +import com.google.gwt.gin.higherlower.client.DefaultHigherLowerGame; +import com.google.gwt.gin.higherlower.client.HigherLowerGame; +import com.google.gwt.gin.higherlower.client.Homepage; +import com.google.gwt.gin.higherlower.client.DefaultHomepage; +import com.google.gwt.gin.higherlower.client.DefaultCardGrid; +import com.google.gwt.gin.higherlower.client.CardGrid; +import com.google.gwt.gin.higherlower.client.model.Deck; +import com.google.gwt.inject.client.AbstractGinModule; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Image; +import com.google.inject.Singleton; +import com.google.inject.name.Names; + +public class HigherOrLowerModule extends AbstractGinModule { + @Override + protected void configure() { + bind(Homepage.class).to(DefaultHomepage.class); + + bind(Deck.class).toProvider(DeckProvider.class); + bind(Shuffler.class).to(SimpleShuffler.class).in(Singleton.class); + bind(Image.class).annotatedWith(BackOfCard.class).toProvider(BackOfCardProvider.class); + bind(Button.class).annotatedWith(StartGame.class).toProvider(StartGameButtonProvider.class) + .in(Singleton.class); + + bind(GameHost.class).to(Walter.class).in(Singleton.class); + bind(GameDialogs.class).to(DefaultGameDialogs.class).in(Singleton.class); + bind(HigherLowerGame.class).to(DefaultHigherLowerGame.class); + bind(CardGrid.class).to(DefaultCardGrid.class).in(Singleton.class); + bind(ScoreBoard.class).to(DefaultScoreBoard.class).in(Singleton.class); + + bindConstant().annotatedWith(Rows.class).to(2); + bindConstant().annotatedWith(Columns.class).to(5); + bind(Integer.class).annotatedWith(NumberOfCards.class) + .toProvider(NumberOfCardsProvider.class); + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCards.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCards.java new file mode 100644 index 0000000..74a71c1 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCards.java @@ -0,0 +1,17 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.BindingAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The number of active playing cards. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@BindingAnnotation +public @interface NumberOfCards { +} \ No newline at end of file diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCardsProvider.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCardsProvider.java new file mode 100644 index 0000000..e1813c7 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/NumberOfCardsProvider.java @@ -0,0 +1,18 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.google.inject.name.Named; + +public class NumberOfCardsProvider implements Provider { + private final int numberOfCards; + + @Inject + public NumberOfCardsProvider(@Rows int rows, @Columns int columns) { + this.numberOfCards = rows*columns; + } + + public Integer get() { + return numberOfCards; + } +} diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Rows.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Rows.java new file mode 100644 index 0000000..42cb465 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/Rows.java @@ -0,0 +1,17 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.BindingAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The number of visible playing card rows on the screen. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@BindingAnnotation +public @interface Rows { +} \ No newline at end of file diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGame.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGame.java new file mode 100644 index 0000000..ba1ca85 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGame.java @@ -0,0 +1,17 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.inject.BindingAnnotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Used for artifacts that we use at the start of a game. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@BindingAnnotation +public @interface StartGame { +} \ No newline at end of file diff --git a/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGameButtonProvider.java b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGameButtonProvider.java new file mode 100644 index 0000000..e278985 --- /dev/null +++ b/trunk/samples/HigherLower/src/com/google/gwt/gin/higherlower/client/gin/StartGameButtonProvider.java @@ -0,0 +1,10 @@ +package com.google.gwt.gin.higherlower.client.gin; + +import com.google.gwt.user.client.ui.Button; +import com.google.inject.Provider; + +public class StartGameButtonProvider implements Provider