aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristian Edward Gruber <cgruber@google.com>2014-04-01 15:07:55 -0700
committerChristian Edward Gruber <cgruber@google.com>2014-04-01 15:36:38 -0700
commitaf24f632f90fc91daeb30172b874405c131592c8 (patch)
treed44a940d67b6a9d3f274ea49c0de14fd2cad9a59 /lib
parentcade897b45ffe5d9d4e48ae7009cf74d8a91e335 (diff)
downloadguice-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.jarbin0 -> 18301 bytes
1 files changed, 0 insertions, 0 deletions
diff --git a/lib/build/jsr305.jar b/lib/build/jsr305.jar
new file mode 100644
index 00000000..f973aea9
--- /dev/null
+++ b/lib/build/jsr305.jar
Binary files differ