diff options
author | Christian Edward Gruber <cgruber@google.com> | 2014-04-01 15:07:55 -0700 |
---|---|---|
committer | Christian Edward Gruber <cgruber@google.com> | 2014-04-01 15:36:38 -0700 |
commit | af24f632f90fc91daeb30172b874405c131592c8 (patch) | |
tree | d44a940d67b6a9d3f274ea49c0de14fd2cad9a59 /lib | |
parent | cade897b45ffe5d9d4e48ae7009cf74d8a91e335 (diff) | |
download | guice-af24f632f90fc91daeb30172b874405c131592c8.tar.gz |
Adds a new OptionalBinder. OptionalBinder allows frameworks to setup bindings for items that user code may or may not bind. It also allows frameworks to set default values that users can override.
The API is:
OptionalBinder.newOptionalBinder(Binder, Class|TypeLiteral|Key) -> OptionalBinder
optionalBinder.setDefault -> LinkedBindingBuilder
optionalBinder.setBinding -> LinkedBindingBuilder
By way of example, this will do:
newOptionalBinder(..) -> @Inject Thing -> exception: neither setDefault nor setBinding called
newOptionalBinder(..) -> @Inject Optional<Thing> -> isPresent() == false
newOptionalBinder(..).setDefault().to("a") -> @Inject Thing -> "a"
newOptionalBinder(..).setDefault().to("a") -> @Inject Optional<Thing> --> get() == "a"
newOptionalBinder(..).setDefault().to("a") + newOptionalBinder(..).setBinding().to("b") -> @Inject Thing -> "b"
newOptionalBinder(..).setDefault().to("a") + newOptionalBinder(..).setBinding().to("b") -> @Inject Optional<Thing> -> get() == "b"
newOptionalBinder(..).setBinding().to("b") -> @Inject Thing -> "b"
newOptionalBinder(..).setBinding().to("b") -> @Inject Optional<Thing> -> get() == "b"
newOptionalBinder(..).setDefault().to("a") + newOptionalBinder(..).setDefault().to("b") -> configuration exception
newOptionalBinder(..).setBinding().to("a") + newOptionalBinder(..).setBinding().to("b") -> configuration exception
(This also adds the jsr305 jar for build time, because doclava wanted it. Frustrating.)
(This also fixes users that implemented MultibindingsTargetVisitor, because I can't use default methods yet.)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=63873859
Diffstat (limited to 'lib')
-rw-r--r-- | lib/build/jsr305.jar | bin | 0 -> 18301 bytes |
1 files changed, 0 insertions, 0 deletions
diff --git a/lib/build/jsr305.jar b/lib/build/jsr305.jar Binary files differnew file mode 100644 index 00000000..f973aea9 --- /dev/null +++ b/lib/build/jsr305.jar |